@@ -121,7 +121,7 @@ function quantityUnitOfMeasureFromDrugFormCode(dispenseRequest) {
121121 // https://terminology.hl7.org/5.0.0/CodeSystem-v3-orderableDrugForm.html
122122 // Return NCPDP QuantityUnitOfMeasure
123123 if (
124- dispenseRequest . quantity . system . toLowerCase ( ) . endsWith ( 'v3-orderableDrugForm' . toLowerCase ( ) )
124+ dispenseRequest ? .quantity ? .system ? .toLowerCase ( ) . endsWith ( 'v3-orderableDrugForm' . toLowerCase ( ) )
125125 ) {
126126 // is a subset of the codes, not a complete list
127127 switch ( dispenseRequest . quantity . code . toUpperCase ( ) ) {
@@ -253,19 +253,21 @@ function buildNewRxMedication(doc, medicationRequestResource) {
253253 medicationPrescribed . appendChild ( drugCoded ) ;
254254
255255 // Medication Quantity
256+ console . log ( medicationRequestResource ) ;
256257 const dispenseRequest = medicationRequestResource . dispenseRequest ;
257- var quantity = doc . createElement ( 'Quantity' ) ;
258- xmlAddTextNode ( doc , quantity , 'Value' , dispenseRequest . quantity . value ) ;
259- xmlAddTextNode ( doc , quantity , 'CodeListQualifier' , 38 ) ; // Original Quantity
260- var quantityUnitOfMeasure = doc . createElement ( 'QuantityUnitOfMeasure' ) ;
261- xmlAddTextNode (
262- doc ,
263- quantityUnitOfMeasure ,
264- 'Code' ,
265- quantityUnitOfMeasureFromDrugFormCode ( dispenseRequest )
266- ) ;
267- quantity . appendChild ( quantityUnitOfMeasure ) ;
268- medicationPrescribed . appendChild ( quantity ) ;
258+ var quantity = doc . createElement ( 'Quantity' ) ;
259+ xmlAddTextNode ( doc , quantity , 'Value' , dispenseRequest ?. quantity ?. value ? dispenseRequest ?. quantity ?. value : '' ) ;
260+ xmlAddTextNode ( doc , quantity , 'CodeListQualifier' , 38 ) ; // Original Quantity
261+ var quantityUnitOfMeasure = doc . createElement ( 'QuantityUnitOfMeasure' ) ;
262+ xmlAddTextNode (
263+ doc ,
264+ quantityUnitOfMeasure ,
265+ 'Code' ,
266+ quantityUnitOfMeasureFromDrugFormCode ( dispenseRequest ? dispenseRequest : { } )
267+ ) ;
268+ quantity . appendChild ( quantityUnitOfMeasure ) ;
269+ medicationPrescribed . appendChild ( quantity ) ;
270+
269271
270272 // Medication Written Date
271273 var writtenDate = doc . createElement ( 'WrittenDate' ) ;
@@ -280,13 +282,17 @@ function buildNewRxMedication(doc, medicationRequestResource) {
280282 doc ,
281283 medicationPrescribed ,
282284 'NumberOfRefills' ,
283- dispenseRequest . numberOfRepeatsAllowed
285+ dispenseRequest ? .numberOfRepeatsAllowed ? dispenseRequest ?. numberOfRepeatsAllowed : ''
284286 ) ;
285287
288+
286289 // Medication Sig
287- var sig = doc . createElement ( 'Sig' ) ;
288- xmlAddTextNode ( doc , sig , 'SigText' , medicationRequestResource . dosageInstruction [ 0 ] . text ) ;
289- medicationPrescribed . appendChild ( sig ) ;
290+ var dosageInstruction = medicationRequestResource ?. dosageInstruction ;
291+ var dosageText = dosageInstruction ? dosageInstruction [ 0 ] ?. text : ''
292+ var sig = doc . createElement ( 'Sig' ) ;
293+ xmlAddTextNode ( doc , sig , 'SigText' , dosageText ) ;
294+ medicationPrescribed . appendChild ( sig ) ;
295+
290296
291297 // Medication REMS
292298 // A - Prescriber has checked REMS and the prescriber's actions have been completed.
0 commit comments