- PSOERXIF ;ALB/BWF - eRx Utilities/RPC's ; 8/3/2016 5:14pm
- ;;7.0;OUTPATIENT PHARMACY;**581,635**;DEC 1997;Build 19
- ;
- Q
- ; ERXIEN - ERX IEN
- ; MIEN - MEDICATION IEN
- SIG(ERXIEN,MIEN,MTYPE,MEDTYPE,I) ;
- N MSF,INSF,GL,GLIFU,GLINS,CFT,SIGTEXT,FMT,SNOV,INS,INSCNT,MIM,INSI,MTM
- N DDMC,DDMQ,DDMT,DDMMC,DDMMT,DDMMQ,DADDQ,DADUOMC,DADUOMQ,DADUOMT,DADDDRM,DADDQ2,DADUOMC2
- N DADUOMQ2,DADUOMT2,DADCDBN,DADCDBRM,DADCDBN2,DADCDBC,DADCDBT,DADCDBQ,DADCBMQ,DADCBMV
- N DADCCDN,DADCCDC,DADCCDT,DADCCDQ,DADCCF,DADDCC,DADDCT,DADDCQ,DADCFT,DADAC,DADAT,DADAQ,DAV,DAROAC
- N DAROAQ,DAROAT,DAROACFT,DASOAC,DASOAQ,DASOAT,DASOACFT,INS2,INS2CNT,TADFFNV,TADFVFM,TADFFNV2,TADFFUC
- N TADFFUQ,TADFFUT,TADIINV,TADIVIM,TADIINV2,TADIIUC,TADIIUQ,TADIIUT,TADATATN,TADATVAT,TADAATUC,TADAATUQ,TADAATUT
- N TADAATMC,TADAATMQ,TADAATMT,TADAATEC,TADAATEQ,TADAATET,TADAATFT,TADROA,TADRUOMC,TADRUOMT,TADRUOMQ,TADTPBC
- N TADTPBT,TADTPBQ,TADDNV,TADDTC,TADDTQ,TADDTT,TADDTTC,TADDTTQ,TADDTTT,TADDTFT,TADSCC,TADSCT,TADSQ,MDR,MDRCNT
- N FDA,GLINSTAD,INS2IENS,SCNT,SIGARY,ICFT,TIMCFT,ADMINI,DAVVC,DAVVCFT,DAVVMVM,DAVVPC,DAVVPQ
- N DAVVPT,DAVVQ,DAVVQ2,DAVVT,DAVVUOMC,DAVVUOMQ,DAVVUOMT,GLINSDA,IFUSF,INSFTAD,INSIENS,TADATAT2,TADSCQ
- S MSF=52.49311
- S INSF=52.4931112
- S IFUSF=52.4931113
- S INSFTAD=52.49311123
- S GL=$NA(^TMP($J,"PSOERXO1","Message",0,"Body",0,MTYPE,0,MEDTYPE,I,"Sig",0))
- S GLINS=$NA(^TMP($J,"PSOERXO1","Message",0,"Body",0,MTYPE,0,MEDTYPE,I,"Sig",0,"Instruction"))
- S CFT=$G(@GL@("ClarifyingFreeText",0)),FDA(MSF,MIEN_","_ERXIEN_",",15)=CFT
- S SIGTEXT=$G(@GL@("SigText",0))
- D SIG^PSOERXII(ERXIEN,MIEN,SIGTEXT)
- S SNOV=$G(@GL@("CodeSystem",0,"SNOMEDVersion",0)),FDA(MSF,MIEN_","_ERXIEN_",",9.1)=SNOV
- S FMT=$G(@GL@("CodeSystem",0,"FMTVersion",0)),FDA(MSF,MIEN_","_ERXIEN_",",9.2)=FMT
- D CFDA^PSOERXIU(.FDA)
- D FILE^DIE(,"FDA") K FDA
- D IFU^PSOERXII(ERXIEN,MIEN,MTYPE,MEDTYPE)
- S INS=-1 F S INS=$O(@GLINS@(INS)) Q:INS="" D
- .; The multiple instruction modifier will be at the INS-1 subscript, since the modifier comes _after_ the instruction and
- .; is optional.
- .S GLINSDA=$NA(^TMP($J,"PSOERXO1","Message",0,"Body",0,MTYPE,0,"MedicationPrescribed",I,"Sig",0,"Instruction",INS,"DoseAdministration",0))
- .S INSCNT=$G(INSCNT)+1
- .S INSIENS="+"_INSCNT_","_MIEN_","_ERXIEN_","
- .S FDA(INSF,INSIENS,.01)=INSCNT
- .S MIM=$G(@GL@("MultipleInstructionModifier",INS-1)),FDA(INSF,INSIENS,.03)=MIM
- .; dose delivery method
- .S INSI=$G(@GLINS@(INS,"InstructionIndicator",0)),FDA(INSF,INSIENS,.02)=INSI
- .S ADMINI=$G(@GLINS@(INS,"AdministrationIndicator",0)),FDA(INSF,INSIENS,4.1)=ADMINI
- .S DDMC=$G(@GLINSDA@("DoseDeliveryMethod",0,"Code",0)),FDA(INSF,INSIENS,7)=DDMC
- .S DDMQ=$G(@GLINSDA@("DoseDeliveryMethod",0,"Qualifier",0)),FDA(INSF,INSIENS,8)=DDMQ
- .S DDMT=$G(@GLINSDA@("DoseDeliveryMethod",0,"Text",0)),FDA(INSF,INSIENS,9)=DDMT
- .S DDMMC=$G(@GLINSDA@("DoseDeliveryMethodModifier",0,"Code",0)),FDA(INSF,INSIENS,72)=DDMMC
- .S DDMMQ=$G(@GLINSDA@("DoseDeliveryMethodModifier",0,"Qualifier",0)),FDA(INSF,INSIENS,73)=DDMMQ
- .S DDMMT=$G(@GLINSDA@("DoseDeliveryMethodModifier",0,"Text",0)),FDA(INSF,INSIENS,74)=DDMMT
- .; dosage
- .S DADDQ=$G(@GLINSDA@("Dosage",0,"DoseQuantity",0)),FDA(INSF,INSIENS,10.1)=DADDQ
- .S DADUOMC=$G(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",0,"Code",0)),FDA(INSF,INSIENS,11)=DADUOMC
- .S DADUOMQ=$G(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",0,"Qualifier",0)),FDA(INSF,INSIENS,12)=DADUOMQ
- .S DADUOMT=$G(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",0,"Text",0)),FDA(INSF,INSIENS,13)=DADUOMT
- .S DADDDRM=$G(@GLINSDA@("Dosage",0,"DoseRangeModifier",0)),FDA(INSF,INSIENS,14)=DADDDRM
- .; 2 instances of these elements... check the global/xml structure - not sure where this increments or how it is stored
- .S DADDQ2=$G(@GLINSDA@("Dosage",0,"DoseQuantity",1)),FDA(INSF,INSIENS,15.1)=DADDQ2
- .S DADUOMC2=$G(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",1,"Code",0)),FDA(INSF,INSIENS,16)=DADUOMC2
- .S DADUOMQ2=$G(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",1,"Qualifier",0)),FDA(INSF,INSIENS,17)=DADUOMQ2
- .S DADUOMT2=$G(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",1,"Text",0)),FDA(INSF,INSIENS,18)=DADUOMT2
- .; Dose calculation - 2 INSTANCES OF DOSINGBASISNUMERIC.. CHECK STRUCTURES
- .S DADCDBN=$G(@GLINSDA@("DoseCalculation",0,"DosingBasisNumeric",0)),FDA(INSF,INSIENS,21.1)=DADCDBN
- .S DADCDBRM=$G(@GLINSDA@("DoseCalculation",0,"DosingBasisRangeModifier",0)),FDA(INSF,INSIENS,21.2)=DADCDBRM
- .S DADCDBN2=$G(@GLINSDA@("DoseCalculation",0,"DosingBasisNumeric",1)),FDA(INSF,INSIENS,21.3)=DADCDBN2
- .S DADCDBC=$G(@GLINSDA@("DoseCalculation",0,"DosingBasisUnitOfMeasure",0,"Code",0)),FDA(INSF,INSIENS,22)=DADCDBC
- .S DADCDBQ=$G(@GLINSDA@("DoseCalculation",0,"DosingBasisUnitOfMeasure",0,"Qualifier",0)),FDA(INSF,INSIENS,23)=DADCDBQ
- .S DADCDBT=$G(@GLINSDA@("DoseCalculation",0,"DosingBasisUnitOfMeasure",0,"Text",0)),FDA(INSF,INSIENS,24)=DADCDBT
- .S DADCBMQ=$G(@GLINSDA@("DoseCalculation",0,"BodyMetricQualifier",0)),FDA(INSF,INSIENS,25.1)=DADCBMQ
- .S DADCBMV=$G(@GLINSDA@("DoseCalculation",0,"BodyMetricValue",0)),FDA(INSF,INSIENS,25.2)=DADCBMV
- .S DADCCDN=$G(@GLINSDA@("DoseCalculation",0,"CalculatedDoseNumeric",0)),FDA(INSF,INSIENS,26)=DADCCDN
- .S DADCCDC=$G(@GLINSDA@("DoseCalculation",0,"CalculatedDoseUnitOfMeasure",0,"Code",0)),FDA(INSF,INSIENS,27)=DADCCDC
- .S DADCCDQ=$G(@GLINSDA@("DoseCalculation",0,"CalculatedDoseUnitOfMeasure",0,"Qualifier",0)),FDA(INSF,INSIENS,28)=DADCCDQ
- .S DADCCDT=$G(@GLINSDA@("DoseCalculation",0,"CalculatedDoseUnitOfMeasure",0,"Text",0)),FDA(INSF,INSIENS,29)=DADCCDT
- .S DADCCF=$G(@GLINSDA@("DoseCalculation",0,"DoseCalculationClarifyingFreeText",0)),FDA(INSF,INSIENS,31)=DADCCF
- .S DADDCC=$G(@GLINSDA@("DoseCalculation",0,"DoseUnitOfMeasureCode",0,"Code",0)),FDA(INSF,INSIENS,32)=DADDCC
- .S DADDCQ=$G(@GLINSDA@("DoseCalculation",0,"DoseUnitOfMeasureCode",0,"Qualifier",0)),FDA(INSF,INSIENS,33)=DADDCQ
- .S DADDCT=$G(@GLINSDA@("DoseCalculation",0,"DoseUnitOfMeasureCode",0,"Text",0)),FDA(INSF,INSIENS,34)=DADDCT
- .; dose amount
- .S DADCFT=$G(@GLINSDA@("DoseClarifyingFreeText",0)),FDA(INSF,INSIENS,38)=DADCFT
- .S DADAC=$G(@GLINSDA@("DoseAmount",0,"Code",0)),FDA(INSF,INSIENS,35)=DADAC
- .S DADAQ=$G(@GLINSDA@("DoseAmount",0,"Qualifier",0)),FDA(INSF,INSIENS,36)=DADAQ
- .S DADAT=$G(@GLINSDA@("DoseAmount",0,"Text",0)),FDA(INSF,INSIENS,37)=DADAT
- .; Vehicle
- .S DAVVPC=$G(@GLINSDA@("Vehicle",0,"VehiclePreposition",0,"Code")),FDA(INSF,INSIENS,41)=DAVVPC
- .S DAVVPQ=$G(@GLINSDA@("Vehicle",0,"VehiclePreposition",0,"Qualifier")),FDA(INSF,INSIENS,42)=DAVVPQ
- .S DAVVPT=$G(@GLINSDA@("Vehicle",0,"VehiclePreposition",0,"Text")),FDA(INSF,INSIENS,43)=DAVVPT
- .S DAVVQ=$G(@GLINSDA@("Vehicle",0,"VehicleQuantity",0)),FDA(INSF,INSIENS,44.1)=DAVVQ
- .S DAVVMVM=$G(@GLINSDA@("Vehicle",0,"MultipleVehicleModifier",0)),FDA(INSF,INSIENS,44.2)=DAVVMVM
- .S DAVVQ2=$G(@GLINSDA@("Vehicle",0,"VehicleQuantity",1)),FDA(INSF,INSIENS,44.3)=DAVVQ2
- .S DAVVUOMC=$G(@GLINSDA@("Vehicle",0,"VehicleUnitOfMeasure",0,"Code")),FDA(INSF,INSIENS,45)=DAVVUOMC
- .S DAVVUOMQ=$G(@GLINSDA@("Vehicle",0,"VehicleUnitOfMeasure",0,"Qualifier")),FDA(INSF,INSIENS,46)=DAVVUOMQ
- .S DAVVUOMT=$G(@GLINSDA@("Vehicle",0,"VehicleUnitOfMeasure",0,"Text")),FDA(INSF,INSIENS,47)=DAVVUOMT
- .S DAVVC=$G(@GLINSDA@("Vehicle",0,"Vehicle",0,"Code",0)),FDA(INSF,INSIENS,51)=DAVVC
- .S DAVVQ=$G(@GLINSDA@("Vehicle",0,"Vehicle",0,"Qualifier",0)),FDA(INSF,INSIENS,52)=DAVVQ
- .S DAVVT=$G(@GLINSDA@("Vehicle",0,"Vehicle",0,"Text",0)),FDA(INSF,INSIENS,53)=DAVVT
- .S DAVVCFT=$G(@GLINSDA@("Vehicle",0,"VehicleClarifyingFreeText",0)),FDA(INSF,INSIENS,54)=DAVVCFT
- .; route of administration
- .S DAROAC=$G(@GLINSDA@("RouteOfAdministration",0,"Code",0)),FDA(INSF,INSIENS,55)=DAROAC
- .S DAROAQ=$G(@GLINSDA@("RouteOfAdministration",0,"Qualifier",0)),FDA(INSF,INSIENS,56)=DAROAQ
- .S DAROAT=$G(@GLINSDA@("RouteOfAdministration",0,"Text",0)),FDA(INSF,INSIENS,57)=DAROAT
- .S DAROACFT=$G(@GLINS@("RouteOfAdministrationClarifyingFreeText",0)),FDA(INSF,INSIENS,58)=DAROACFT
- .; site of administration
- .S DASOAC=$G(@GLINSDA@("SiteOfAdministration",0,"Code",0)),FDA(INSF,INSIENS,61)=DASOAC
- .S DASOAQ=$G(@GLINSDA@("SiteOfAdministration",0,"Qualifier",0)),FDA(INSF,INSIENS,62)=DASOAQ
- .S DASOAT=$G(@GLINSDA@("SiteOfAdministration",0,"Text",0)),FDA(INSF,INSIENS,63)=DASOAT
- .S DASOACFT=$G(@GLINSDA@("SiteOfAdministrationClarifyingFreeText",0)),FDA(INSF,INSIENS,64)=DASOACFT
- .S ICFT=$G(@GLINS@(INS,"IndicationClarifyingFreeText",0)),FDA(INSF,INSIENS,70)=ICFT
- .N NINSIEN,NEWIEN
- .D CFDA^PSOERXIU(.FDA)
- .D UPDATE^DIE(,"FDA","NEWIEN") K FDA S NEWIEN=$O(NEWIEN(0)),NINSIEN=$G(NEWIEN(NEWIEN))
- .;PSO*7*635 - add handling of 'IndicationForUse' when it appears under the 'Instruction' segment
- .D INSIFU^PSOERXII(ERXIEN,MIEN,MTYPE,MEDTYPE,INS,NINSIEN)
- .;PSO*7*635 - end change
- .S INS2=-1 F S INS2=$O(@GLINS@(INS,"TimingAndDuration",INS2)) Q:INS2="" D
- ..; frequency - note dual FrequencyNumericValue components. need to see how that gets stored. incrementor?
- ..S INS2CNT=$G(INS2CNT)+1
- ..S INS2IENS="+"_INS2CNT_","_NINSIEN_","_MIEN_","_ERXIEN_","
- ..S FDA(INSFTAD,INS2IENS,.01)=INS2CNT
- ..S MTM=$G(@GLINS@(INS,"MultipleTimingModifier",0)),FDA(INSFTAD,INS2IENS,.02)=MTM
- ..S GLINSTAD=$NA(^TMP($J,"PSOERXO1","Message",0,"Body",0,MTYPE,0,"MedicationPrescribed",0,"Sig",0,"Instruction",INS,"TimingAndDuration",INS2))
- ..S TADFFNV=$G(@GLINSTAD@("Frequency",0,"FrequencyNumericValue",0)),FDA(INSFTAD,INS2IENS,11.1)=TADFFNV
- ..S TADFVFM=$G(@GLINSTAD@("Frequency",0,"VariableFrequencyModifier",0)),FDA(INSFTAD,INS2IENS,11.2)=TADFVFM
- ..S TADFFNV2=$G(@GLINSTAD@("Frequency",0,"FrequencyNumericValue",1)),FDA(INSFTAD,INS2IENS,11.3)=TADFFNV2
- ..S TADFFUC=$G(@GLINSTAD@("Frequency",0,"FrequencyUnits",0,"Code",0)),FDA(INSFTAD,INS2IENS,12)=TADFFUC
- ..S TADFFUQ=$G(@GLINSTAD@("Frequency",0,"FrequencyUnits",0,"Qualifier",0)),FDA(INSFTAD,INS2IENS,13)=TADFFUQ
- ..S TADFFUT=$G(@GLINSTAD@("Frequency",0,"FrequencyUnits",0,"Text",0)),FDA(INSFTAD,INS2IENS,14)=TADFFUT
- ..; interval - same issue as frequency
- ..S TADIINV=$G(@GLINSTAD@("Interval",0,"IntervalNumericValue",0)),FDA(INSFTAD,INS2IENS,15.1)=TADIINV
- ..S TADIVIM=$G(@GLINSTAD@("Interval",0,"VariableIntervalModifier",0)),FDA(INSFTAD,INS2IENS,15.2)=TADIVIM
- ..S TADIINV2=$G(@GLINSTAD@("Interval",0,"IntervalNumericValue",1)),FDA(INSFTAD,INS2IENS,15.3)=TADIINV2
- ..S TADIIUC=$G(@GLINSTAD@("Interval",0,"IntervalUnits",0,"Code",0)),FDA(INSFTAD,INS2IENS,16)=TADIIUC
- ..S TADIIUQ=$G(@GLINSTAD@("Interval",0,"IntervalUnits",0,"Qualifier",0)),FDA(INSFTAD,INS2IENS,17)=TADIIUQ
- ..S TADIIUT=$G(@GLINSTAD@("Interval",0,"IntervalUnits",0,"Text",0)),FDA(INSFTAD,INS2IENS,18)=TADIIUT
- ..;admin timing
- ..S TADATATN=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingNumericValue",0)),FDA(INSFTAD,INS2IENS,.03)=TADATATN
- ..S TADATAT2=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingNumericValue",1)),FDA(INSFTAD,INS2IENS,.05)=TADATAT2
- ..S TADATVAT=$G(@GLINSTAD@("AdministrationTiming",0,"VariableAdministrationTimingModifier",0,"Code",0)),FDA(INSFTAD,INS2IENS,.04)=TADATVAT
- ..S TADAATUC=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingUnits",0,"Code",0)),FDA(INSFTAD,INS2IENS,1)=TADAATUC
- ..S TADAATUQ=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingUnits",0,"Qualifier",0)),FDA(INSFTAD,INS2IENS,2)=TADAATUQ
- ..S TADAATUT=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingUnits",0,"Text",0)),FDA(INSFTAD,INS2IENS,3)=TADAATUT
- ..S TADAATMC=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingModifier",0,"Code",0)),FDA(INSFTAD,INS2IENS,4)=TADAATMC
- ..S TADAATMQ=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingModifier",0,"Qualifier",0)),FDA(INSFTAD,INS2IENS,5)=TADAATMQ
- ..S TADAATMT=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingModifier",0,"Text",0)),FDA(INSFTAD,INS2IENS,6)=TADAATMT
- ..S TADAATEC=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingEvent",0,"Code",0)),FDA(INSFTAD,INS2IENS,7)=TADAATEC
- ..S TADAATEQ=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingEvent",0,"Qualifier",0)),FDA(INSFTAD,INS2IENS,8)=TADAATEQ
- ..S TADAATET=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingEvent",0,"Text",0)),FDA(INSFTAD,INS2IENS,9)=TADAATET
- ..S TADAATFT=$G(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingClarifyingFreeText",0)),FDA(INSFTAD,INS2IENS,10)=TADAATFT
- ..; rate of administration
- ..S TADROA=$G(@GLINSTAD@("RateOfAdministration",0,"RateOfAdministration",0)),FDA(INSFTAD,INS2IENS,21.1)=TADROA
- ..S TADRUOMC=$G(@GLINSTAD@("RateOfAdministration",0,"RateUnitOfMeasure",0,"Code")),FDA(INSFTAD,INS2IENS,22)=TADRUOMC
- ..S TADRUOMT=$G(@GLINSTAD@("RateOfAdministration",0,"RateUnitOfMeasure",0,"Text")),FDA(INSFTAD,INS2IENS,24)=TADRUOMT
- ..S TADRUOMQ=$G(@GLINSTAD@("RateOfAdministration",0,"RateUnitOfMeasure",0,"Qualifier")),FDA(INSFTAD,INS2IENS,23)=TADRUOMQ
- ..S TADTPBC=$G(@GLINSTAD@("RateOfAdministration",0,"TimePeriodBasis",0,"Code")),FDA(INSFTAD,INS2IENS,25)=TADTPBC
- ..S TADTPBT=$G(@GLINSTAD@("RateOfAdministration",0,"TimePeriodBasis",0,"Text")),FDA(INSFTAD,INS2IENS,27)=TADTPBT
- ..S TADTPBQ=$G(@GLINSTAD@("RateOfAdministration",0,"TimePeriodBasis",0,"Qualifier")),FDA(INSFTAD,INS2IENS,26)=TADTPBQ
- ..S TIMCFT=$G(@GLINSTAD@("TimeClarifyingFreeText",0)),FDA(INSFTAD,INS2IENS,28)=TIMCFT
- ..; duration
- ..S TADDNV=$G(@GLINSTAD@("Duration",0,"DurationNumericValue",0)),FDA(INSFTAD,INS2IENS,31)=TADDNV
- ..S TADDTC=$G(@GLINSTAD@("Duration",0,"DurationText",0,"Code",0)),FDA(INSFTAD,INS2IENS,32)=TADDTC
- ..S TADDTQ=$G(@GLINSTAD@("Duration",0,"DurationText",0,"Qualifier",0)),FDA(INSFTAD,INS2IENS,33)=TADDTQ
- ..S TADDTT=$G(@GLINSTAD@("Duration",0,"DurationText",0,"Text",0)),FDA(INSFTAD,INS2IENS,34)=TADDTT
- ..; duration trigger
- ..S TADDTTC=$G(@GLINSTAD@("DurationTrigger",0,"Trigger",0,"Code",0)),FDA(INSFTAD,INS2IENS,35)=TADDTTC
- ..S TADDTTQ=$G(@GLINSTAD@("DurationTrigger",0,"Trigger",0,"Qualifier",0)),FDA(INSFTAD,INS2IENS,36)=TADDTTQ
- ..S TADDTTT=$G(@GLINSTAD@("DurationTrigger",0,"Trigger",0,"Text",0)),FDA(INSFTAD,INS2IENS,37)=TADDTTT
- ..S TADDTFT=$G(@GLINSTAD@("DurationTrigger",0,"DurationClarifyingFreeText",0)),FDA(INSFTAD,INS2IENS,38)=TADDTFT
- ..; stop code
- ..S TADSCC=$G(@GLINSTAD@("StopCode",0,"Code",0)),FDA(INSFTAD,INS2IENS,41)=TADSCC
- ..S TADSCT=$G(@GLINSTAD@("StopCode",0,"Text",0)),FDA(INSFTAD,INS2IENS,43)=TADSCT
- ..S TADSCQ=$G(@GLINSTAD@("StopCode",0,"Qualifier",0)),FDA(INSFTAD,INS2IENS,42)=TADSCQ
- ..D CFDA^PSOERXIU(.FDA)
- ..D UPDATE^DIE(,"FDA") K FDA
- ..;D MDRSF^PSOERXII(GLINS,ERXIEN,MIEN,NINSIEN)
- D MDR^PSOERXII(ERXIEN,MIEN,MTYPE,MEDTYPE)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSOERXIF 14601 printed Jan 18, 2025@03:29:49 Page 2
- PSOERXIF ;ALB/BWF - eRx Utilities/RPC's ; 8/3/2016 5:14pm
- +1 ;;7.0;OUTPATIENT PHARMACY;**581,635**;DEC 1997;Build 19
- +2 ;
- +3 QUIT
- +4 ; ERXIEN - ERX IEN
- +5 ; MIEN - MEDICATION IEN
- SIG(ERXIEN,MIEN,MTYPE,MEDTYPE,I) ;
- +1 NEW MSF,INSF,GL,GLIFU,GLINS,CFT,SIGTEXT,FMT,SNOV,INS,INSCNT,MIM,INSI,MTM
- +2 NEW DDMC,DDMQ,DDMT,DDMMC,DDMMT,DDMMQ,DADDQ,DADUOMC,DADUOMQ,DADUOMT,DADDDRM,DADDQ2,DADUOMC2
- +3 NEW DADUOMQ2,DADUOMT2,DADCDBN,DADCDBRM,DADCDBN2,DADCDBC,DADCDBT,DADCDBQ,DADCBMQ,DADCBMV
- +4 NEW DADCCDN,DADCCDC,DADCCDT,DADCCDQ,DADCCF,DADDCC,DADDCT,DADDCQ,DADCFT,DADAC,DADAT,DADAQ,DAV,DAROAC
- +5 NEW DAROAQ,DAROAT,DAROACFT,DASOAC,DASOAQ,DASOAT,DASOACFT,INS2,INS2CNT,TADFFNV,TADFVFM,TADFFNV2,TADFFUC
- +6 NEW TADFFUQ,TADFFUT,TADIINV,TADIVIM,TADIINV2,TADIIUC,TADIIUQ,TADIIUT,TADATATN,TADATVAT,TADAATUC,TADAATUQ,TADAATUT
- +7 NEW TADAATMC,TADAATMQ,TADAATMT,TADAATEC,TADAATEQ,TADAATET,TADAATFT,TADROA,TADRUOMC,TADRUOMT,TADRUOMQ,TADTPBC
- +8 NEW TADTPBT,TADTPBQ,TADDNV,TADDTC,TADDTQ,TADDTT,TADDTTC,TADDTTQ,TADDTTT,TADDTFT,TADSCC,TADSCT,TADSQ,MDR,MDRCNT
- +9 NEW FDA,GLINSTAD,INS2IENS,SCNT,SIGARY,ICFT,TIMCFT,ADMINI,DAVVC,DAVVCFT,DAVVMVM,DAVVPC,DAVVPQ
- +10 NEW DAVVPT,DAVVQ,DAVVQ2,DAVVT,DAVVUOMC,DAVVUOMQ,DAVVUOMT,GLINSDA,IFUSF,INSFTAD,INSIENS,TADATAT2,TADSCQ
- +11 SET MSF=52.49311
- +12 SET INSF=52.4931112
- +13 SET IFUSF=52.4931113
- +14 SET INSFTAD=52.49311123
- +15 SET GL=$NAME(^TMP($JOB,"PSOERXO1","Message",0,"Body",0,MTYPE,0,MEDTYPE,I,"Sig",0))
- +16 SET GLINS=$NAME(^TMP($JOB,"PSOERXO1","Message",0,"Body",0,MTYPE,0,MEDTYPE,I,"Sig",0,"Instruction"))
- +17 SET CFT=$GET(@GL@("ClarifyingFreeText",0))
- SET FDA(MSF,MIEN_","_ERXIEN_",",15)=CFT
- +18 SET SIGTEXT=$GET(@GL@("SigText",0))
- +19 DO SIG^PSOERXII(ERXIEN,MIEN,SIGTEXT)
- +20 SET SNOV=$GET(@GL@("CodeSystem",0,"SNOMEDVersion",0))
- SET FDA(MSF,MIEN_","_ERXIEN_",",9.1)=SNOV
- +21 SET FMT=$GET(@GL@("CodeSystem",0,"FMTVersion",0))
- SET FDA(MSF,MIEN_","_ERXIEN_",",9.2)=FMT
- +22 DO CFDA^PSOERXIU(.FDA)
- +23 DO FILE^DIE(,"FDA")
- KILL FDA
- +24 DO IFU^PSOERXII(ERXIEN,MIEN,MTYPE,MEDTYPE)
- +25 SET INS=-1
- FOR
- SET INS=$ORDER(@GLINS@(INS))
- if INS=""
- QUIT
- Begin DoDot:1
- +26 ; The multiple instruction modifier will be at the INS-1 subscript, since the modifier comes _after_ the instruction and
- +27 ; is optional.
- +28 SET GLINSDA=$NAME(^TMP($JOB,"PSOERXO1","Message",0,"Body",0,MTYPE,0,"MedicationPrescribed",I,"Sig",0,"Instruction",INS,"DoseAdministration",0))
- +29 SET INSCNT=$GET(INSCNT)+1
- +30 SET INSIENS="+"_INSCNT_","_MIEN_","_ERXIEN_","
- +31 SET FDA(INSF,INSIENS,.01)=INSCNT
- +32 SET MIM=$GET(@GL@("MultipleInstructionModifier",INS-1))
- SET FDA(INSF,INSIENS,.03)=MIM
- +33 ; dose delivery method
- +34 SET INSI=$GET(@GLINS@(INS,"InstructionIndicator",0))
- SET FDA(INSF,INSIENS,.02)=INSI
- +35 SET ADMINI=$GET(@GLINS@(INS,"AdministrationIndicator",0))
- SET FDA(INSF,INSIENS,4.1)=ADMINI
- +36 SET DDMC=$GET(@GLINSDA@("DoseDeliveryMethod",0,"Code",0))
- SET FDA(INSF,INSIENS,7)=DDMC
- +37 SET DDMQ=$GET(@GLINSDA@("DoseDeliveryMethod",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,8)=DDMQ
- +38 SET DDMT=$GET(@GLINSDA@("DoseDeliveryMethod",0,"Text",0))
- SET FDA(INSF,INSIENS,9)=DDMT
- +39 SET DDMMC=$GET(@GLINSDA@("DoseDeliveryMethodModifier",0,"Code",0))
- SET FDA(INSF,INSIENS,72)=DDMMC
- +40 SET DDMMQ=$GET(@GLINSDA@("DoseDeliveryMethodModifier",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,73)=DDMMQ
- +41 SET DDMMT=$GET(@GLINSDA@("DoseDeliveryMethodModifier",0,"Text",0))
- SET FDA(INSF,INSIENS,74)=DDMMT
- +42 ; dosage
- +43 SET DADDQ=$GET(@GLINSDA@("Dosage",0,"DoseQuantity",0))
- SET FDA(INSF,INSIENS,10.1)=DADDQ
- +44 SET DADUOMC=$GET(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",0,"Code",0))
- SET FDA(INSF,INSIENS,11)=DADUOMC
- +45 SET DADUOMQ=$GET(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,12)=DADUOMQ
- +46 SET DADUOMT=$GET(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",0,"Text",0))
- SET FDA(INSF,INSIENS,13)=DADUOMT
- +47 SET DADDDRM=$GET(@GLINSDA@("Dosage",0,"DoseRangeModifier",0))
- SET FDA(INSF,INSIENS,14)=DADDDRM
- +48 ; 2 instances of these elements... check the global/xml structure - not sure where this increments or how it is stored
- +49 SET DADDQ2=$GET(@GLINSDA@("Dosage",0,"DoseQuantity",1))
- SET FDA(INSF,INSIENS,15.1)=DADDQ2
- +50 SET DADUOMC2=$GET(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",1,"Code",0))
- SET FDA(INSF,INSIENS,16)=DADUOMC2
- +51 SET DADUOMQ2=$GET(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",1,"Qualifier",0))
- SET FDA(INSF,INSIENS,17)=DADUOMQ2
- +52 SET DADUOMT2=$GET(@GLINSDA@("Dosage",0,"DoseUnitOfMeasure",1,"Text",0))
- SET FDA(INSF,INSIENS,18)=DADUOMT2
- +53 ; Dose calculation - 2 INSTANCES OF DOSINGBASISNUMERIC.. CHECK STRUCTURES
- +54 SET DADCDBN=$GET(@GLINSDA@("DoseCalculation",0,"DosingBasisNumeric",0))
- SET FDA(INSF,INSIENS,21.1)=DADCDBN
- +55 SET DADCDBRM=$GET(@GLINSDA@("DoseCalculation",0,"DosingBasisRangeModifier",0))
- SET FDA(INSF,INSIENS,21.2)=DADCDBRM
- +56 SET DADCDBN2=$GET(@GLINSDA@("DoseCalculation",0,"DosingBasisNumeric",1))
- SET FDA(INSF,INSIENS,21.3)=DADCDBN2
- +57 SET DADCDBC=$GET(@GLINSDA@("DoseCalculation",0,"DosingBasisUnitOfMeasure",0,"Code",0))
- SET FDA(INSF,INSIENS,22)=DADCDBC
- +58 SET DADCDBQ=$GET(@GLINSDA@("DoseCalculation",0,"DosingBasisUnitOfMeasure",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,23)=DADCDBQ
- +59 SET DADCDBT=$GET(@GLINSDA@("DoseCalculation",0,"DosingBasisUnitOfMeasure",0,"Text",0))
- SET FDA(INSF,INSIENS,24)=DADCDBT
- +60 SET DADCBMQ=$GET(@GLINSDA@("DoseCalculation",0,"BodyMetricQualifier",0))
- SET FDA(INSF,INSIENS,25.1)=DADCBMQ
- +61 SET DADCBMV=$GET(@GLINSDA@("DoseCalculation",0,"BodyMetricValue",0))
- SET FDA(INSF,INSIENS,25.2)=DADCBMV
- +62 SET DADCCDN=$GET(@GLINSDA@("DoseCalculation",0,"CalculatedDoseNumeric",0))
- SET FDA(INSF,INSIENS,26)=DADCCDN
- +63 SET DADCCDC=$GET(@GLINSDA@("DoseCalculation",0,"CalculatedDoseUnitOfMeasure",0,"Code",0))
- SET FDA(INSF,INSIENS,27)=DADCCDC
- +64 SET DADCCDQ=$GET(@GLINSDA@("DoseCalculation",0,"CalculatedDoseUnitOfMeasure",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,28)=DADCCDQ
- +65 SET DADCCDT=$GET(@GLINSDA@("DoseCalculation",0,"CalculatedDoseUnitOfMeasure",0,"Text",0))
- SET FDA(INSF,INSIENS,29)=DADCCDT
- +66 SET DADCCF=$GET(@GLINSDA@("DoseCalculation",0,"DoseCalculationClarifyingFreeText",0))
- SET FDA(INSF,INSIENS,31)=DADCCF
- +67 SET DADDCC=$GET(@GLINSDA@("DoseCalculation",0,"DoseUnitOfMeasureCode",0,"Code",0))
- SET FDA(INSF,INSIENS,32)=DADDCC
- +68 SET DADDCQ=$GET(@GLINSDA@("DoseCalculation",0,"DoseUnitOfMeasureCode",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,33)=DADDCQ
- +69 SET DADDCT=$GET(@GLINSDA@("DoseCalculation",0,"DoseUnitOfMeasureCode",0,"Text",0))
- SET FDA(INSF,INSIENS,34)=DADDCT
- +70 ; dose amount
- +71 SET DADCFT=$GET(@GLINSDA@("DoseClarifyingFreeText",0))
- SET FDA(INSF,INSIENS,38)=DADCFT
- +72 SET DADAC=$GET(@GLINSDA@("DoseAmount",0,"Code",0))
- SET FDA(INSF,INSIENS,35)=DADAC
- +73 SET DADAQ=$GET(@GLINSDA@("DoseAmount",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,36)=DADAQ
- +74 SET DADAT=$GET(@GLINSDA@("DoseAmount",0,"Text",0))
- SET FDA(INSF,INSIENS,37)=DADAT
- +75 ; Vehicle
- +76 SET DAVVPC=$GET(@GLINSDA@("Vehicle",0,"VehiclePreposition",0,"Code"))
- SET FDA(INSF,INSIENS,41)=DAVVPC
- +77 SET DAVVPQ=$GET(@GLINSDA@("Vehicle",0,"VehiclePreposition",0,"Qualifier"))
- SET FDA(INSF,INSIENS,42)=DAVVPQ
- +78 SET DAVVPT=$GET(@GLINSDA@("Vehicle",0,"VehiclePreposition",0,"Text"))
- SET FDA(INSF,INSIENS,43)=DAVVPT
- +79 SET DAVVQ=$GET(@GLINSDA@("Vehicle",0,"VehicleQuantity",0))
- SET FDA(INSF,INSIENS,44.1)=DAVVQ
- +80 SET DAVVMVM=$GET(@GLINSDA@("Vehicle",0,"MultipleVehicleModifier",0))
- SET FDA(INSF,INSIENS,44.2)=DAVVMVM
- +81 SET DAVVQ2=$GET(@GLINSDA@("Vehicle",0,"VehicleQuantity",1))
- SET FDA(INSF,INSIENS,44.3)=DAVVQ2
- +82 SET DAVVUOMC=$GET(@GLINSDA@("Vehicle",0,"VehicleUnitOfMeasure",0,"Code"))
- SET FDA(INSF,INSIENS,45)=DAVVUOMC
- +83 SET DAVVUOMQ=$GET(@GLINSDA@("Vehicle",0,"VehicleUnitOfMeasure",0,"Qualifier"))
- SET FDA(INSF,INSIENS,46)=DAVVUOMQ
- +84 SET DAVVUOMT=$GET(@GLINSDA@("Vehicle",0,"VehicleUnitOfMeasure",0,"Text"))
- SET FDA(INSF,INSIENS,47)=DAVVUOMT
- +85 SET DAVVC=$GET(@GLINSDA@("Vehicle",0,"Vehicle",0,"Code",0))
- SET FDA(INSF,INSIENS,51)=DAVVC
- +86 SET DAVVQ=$GET(@GLINSDA@("Vehicle",0,"Vehicle",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,52)=DAVVQ
- +87 SET DAVVT=$GET(@GLINSDA@("Vehicle",0,"Vehicle",0,"Text",0))
- SET FDA(INSF,INSIENS,53)=DAVVT
- +88 SET DAVVCFT=$GET(@GLINSDA@("Vehicle",0,"VehicleClarifyingFreeText",0))
- SET FDA(INSF,INSIENS,54)=DAVVCFT
- +89 ; route of administration
- +90 SET DAROAC=$GET(@GLINSDA@("RouteOfAdministration",0,"Code",0))
- SET FDA(INSF,INSIENS,55)=DAROAC
- +91 SET DAROAQ=$GET(@GLINSDA@("RouteOfAdministration",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,56)=DAROAQ
- +92 SET DAROAT=$GET(@GLINSDA@("RouteOfAdministration",0,"Text",0))
- SET FDA(INSF,INSIENS,57)=DAROAT
- +93 SET DAROACFT=$GET(@GLINS@("RouteOfAdministrationClarifyingFreeText",0))
- SET FDA(INSF,INSIENS,58)=DAROACFT
- +94 ; site of administration
- +95 SET DASOAC=$GET(@GLINSDA@("SiteOfAdministration",0,"Code",0))
- SET FDA(INSF,INSIENS,61)=DASOAC
- +96 SET DASOAQ=$GET(@GLINSDA@("SiteOfAdministration",0,"Qualifier",0))
- SET FDA(INSF,INSIENS,62)=DASOAQ
- +97 SET DASOAT=$GET(@GLINSDA@("SiteOfAdministration",0,"Text",0))
- SET FDA(INSF,INSIENS,63)=DASOAT
- +98 SET DASOACFT=$GET(@GLINSDA@("SiteOfAdministrationClarifyingFreeText",0))
- SET FDA(INSF,INSIENS,64)=DASOACFT
- +99 SET ICFT=$GET(@GLINS@(INS,"IndicationClarifyingFreeText",0))
- SET FDA(INSF,INSIENS,70)=ICFT
- +100 NEW NINSIEN,NEWIEN
- +101 DO CFDA^PSOERXIU(.FDA)
- +102 DO UPDATE^DIE(,"FDA","NEWIEN")
- KILL FDA
- SET NEWIEN=$ORDER(NEWIEN(0))
- SET NINSIEN=$GET(NEWIEN(NEWIEN))
- +103 ;PSO*7*635 - add handling of 'IndicationForUse' when it appears under the 'Instruction' segment
- +104 DO INSIFU^PSOERXII(ERXIEN,MIEN,MTYPE,MEDTYPE,INS,NINSIEN)
- +105 ;PSO*7*635 - end change
- +106 SET INS2=-1
- FOR
- SET INS2=$ORDER(@GLINS@(INS,"TimingAndDuration",INS2))
- if INS2=""
- QUIT
- Begin DoDot:2
- +107 ; frequency - note dual FrequencyNumericValue components. need to see how that gets stored. incrementor?
- +108 SET INS2CNT=$GET(INS2CNT)+1
- +109 SET INS2IENS="+"_INS2CNT_","_NINSIEN_","_MIEN_","_ERXIEN_","
- +110 SET FDA(INSFTAD,INS2IENS,.01)=INS2CNT
- +111 SET MTM=$GET(@GLINS@(INS,"MultipleTimingModifier",0))
- SET FDA(INSFTAD,INS2IENS,.02)=MTM
- +112 SET GLINSTAD=$NAME(^TMP($JOB,"PSOERXO1","Message",0,"Body",0,MTYPE,0,"MedicationPrescribed",0,"Sig",0,"Instruction",INS,"TimingAndDuration",INS2))
- +113 SET TADFFNV=$GET(@GLINSTAD@("Frequency",0,"FrequencyNumericValue",0))
- SET FDA(INSFTAD,INS2IENS,11.1)=TADFFNV
- +114 SET TADFVFM=$GET(@GLINSTAD@("Frequency",0,"VariableFrequencyModifier",0))
- SET FDA(INSFTAD,INS2IENS,11.2)=TADFVFM
- +115 SET TADFFNV2=$GET(@GLINSTAD@("Frequency",0,"FrequencyNumericValue",1))
- SET FDA(INSFTAD,INS2IENS,11.3)=TADFFNV2
- +116 SET TADFFUC=$GET(@GLINSTAD@("Frequency",0,"FrequencyUnits",0,"Code",0))
- SET FDA(INSFTAD,INS2IENS,12)=TADFFUC
- +117 SET TADFFUQ=$GET(@GLINSTAD@("Frequency",0,"FrequencyUnits",0,"Qualifier",0))
- SET FDA(INSFTAD,INS2IENS,13)=TADFFUQ
- +118 SET TADFFUT=$GET(@GLINSTAD@("Frequency",0,"FrequencyUnits",0,"Text",0))
- SET FDA(INSFTAD,INS2IENS,14)=TADFFUT
- +119 ; interval - same issue as frequency
- +120 SET TADIINV=$GET(@GLINSTAD@("Interval",0,"IntervalNumericValue",0))
- SET FDA(INSFTAD,INS2IENS,15.1)=TADIINV
- +121 SET TADIVIM=$GET(@GLINSTAD@("Interval",0,"VariableIntervalModifier",0))
- SET FDA(INSFTAD,INS2IENS,15.2)=TADIVIM
- +122 SET TADIINV2=$GET(@GLINSTAD@("Interval",0,"IntervalNumericValue",1))
- SET FDA(INSFTAD,INS2IENS,15.3)=TADIINV2
- +123 SET TADIIUC=$GET(@GLINSTAD@("Interval",0,"IntervalUnits",0,"Code",0))
- SET FDA(INSFTAD,INS2IENS,16)=TADIIUC
- +124 SET TADIIUQ=$GET(@GLINSTAD@("Interval",0,"IntervalUnits",0,"Qualifier",0))
- SET FDA(INSFTAD,INS2IENS,17)=TADIIUQ
- +125 SET TADIIUT=$GET(@GLINSTAD@("Interval",0,"IntervalUnits",0,"Text",0))
- SET FDA(INSFTAD,INS2IENS,18)=TADIIUT
- +126 ;admin timing
- +127 SET TADATATN=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingNumericValue",0))
- SET FDA(INSFTAD,INS2IENS,.03)=TADATATN
- +128 SET TADATAT2=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingNumericValue",1))
- SET FDA(INSFTAD,INS2IENS,.05)=TADATAT2
- +129 SET TADATVAT=$GET(@GLINSTAD@("AdministrationTiming",0,"VariableAdministrationTimingModifier",0,"Code",0))
- SET FDA(INSFTAD,INS2IENS,.04)=TADATVAT
- +130 SET TADAATUC=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingUnits",0,"Code",0))
- SET FDA(INSFTAD,INS2IENS,1)=TADAATUC
- +131 SET TADAATUQ=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingUnits",0,"Qualifier",0))
- SET FDA(INSFTAD,INS2IENS,2)=TADAATUQ
- +132 SET TADAATUT=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingUnits",0,"Text",0))
- SET FDA(INSFTAD,INS2IENS,3)=TADAATUT
- +133 SET TADAATMC=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingModifier",0,"Code",0))
- SET FDA(INSFTAD,INS2IENS,4)=TADAATMC
- +134 SET TADAATMQ=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingModifier",0,"Qualifier",0))
- SET FDA(INSFTAD,INS2IENS,5)=TADAATMQ
- +135 SET TADAATMT=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingModifier",0,"Text",0))
- SET FDA(INSFTAD,INS2IENS,6)=TADAATMT
- +136 SET TADAATEC=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingEvent",0,"Code",0))
- SET FDA(INSFTAD,INS2IENS,7)=TADAATEC
- +137 SET TADAATEQ=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingEvent",0,"Qualifier",0))
- SET FDA(INSFTAD,INS2IENS,8)=TADAATEQ
- +138 SET TADAATET=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingEvent",0,"Text",0))
- SET FDA(INSFTAD,INS2IENS,9)=TADAATET
- +139 SET TADAATFT=$GET(@GLINSTAD@("AdministrationTiming",0,"AdministrationTimingClarifyingFreeText",0))
- SET FDA(INSFTAD,INS2IENS,10)=TADAATFT
- +140 ; rate of administration
- +141 SET TADROA=$GET(@GLINSTAD@("RateOfAdministration",0,"RateOfAdministration",0))
- SET FDA(INSFTAD,INS2IENS,21.1)=TADROA
- +142 SET TADRUOMC=$GET(@GLINSTAD@("RateOfAdministration",0,"RateUnitOfMeasure",0,"Code"))
- SET FDA(INSFTAD,INS2IENS,22)=TADRUOMC
- +143 SET TADRUOMT=$GET(@GLINSTAD@("RateOfAdministration",0,"RateUnitOfMeasure",0,"Text"))
- SET FDA(INSFTAD,INS2IENS,24)=TADRUOMT
- +144 SET TADRUOMQ=$GET(@GLINSTAD@("RateOfAdministration",0,"RateUnitOfMeasure",0,"Qualifier"))
- SET FDA(INSFTAD,INS2IENS,23)=TADRUOMQ
- +145 SET TADTPBC=$GET(@GLINSTAD@("RateOfAdministration",0,"TimePeriodBasis",0,"Code"))
- SET FDA(INSFTAD,INS2IENS,25)=TADTPBC
- +146 SET TADTPBT=$GET(@GLINSTAD@("RateOfAdministration",0,"TimePeriodBasis",0,"Text"))
- SET FDA(INSFTAD,INS2IENS,27)=TADTPBT
- +147 SET TADTPBQ=$GET(@GLINSTAD@("RateOfAdministration",0,"TimePeriodBasis",0,"Qualifier"))
- SET FDA(INSFTAD,INS2IENS,26)=TADTPBQ
- +148 SET TIMCFT=$GET(@GLINSTAD@("TimeClarifyingFreeText",0))
- SET FDA(INSFTAD,INS2IENS,28)=TIMCFT
- +149 ; duration
- +150 SET TADDNV=$GET(@GLINSTAD@("Duration",0,"DurationNumericValue",0))
- SET FDA(INSFTAD,INS2IENS,31)=TADDNV
- +151 SET TADDTC=$GET(@GLINSTAD@("Duration",0,"DurationText",0,"Code",0))
- SET FDA(INSFTAD,INS2IENS,32)=TADDTC
- +152 SET TADDTQ=$GET(@GLINSTAD@("Duration",0,"DurationText",0,"Qualifier",0))
- SET FDA(INSFTAD,INS2IENS,33)=TADDTQ
- +153 SET TADDTT=$GET(@GLINSTAD@("Duration",0,"DurationText",0,"Text",0))
- SET FDA(INSFTAD,INS2IENS,34)=TADDTT
- +154 ; duration trigger
- +155 SET TADDTTC=$GET(@GLINSTAD@("DurationTrigger",0,"Trigger",0,"Code",0))
- SET FDA(INSFTAD,INS2IENS,35)=TADDTTC
- +156 SET TADDTTQ=$GET(@GLINSTAD@("DurationTrigger",0,"Trigger",0,"Qualifier",0))
- SET FDA(INSFTAD,INS2IENS,36)=TADDTTQ
- +157 SET TADDTTT=$GET(@GLINSTAD@("DurationTrigger",0,"Trigger",0,"Text",0))
- SET FDA(INSFTAD,INS2IENS,37)=TADDTTT
- +158 SET TADDTFT=$GET(@GLINSTAD@("DurationTrigger",0,"DurationClarifyingFreeText",0))
- SET FDA(INSFTAD,INS2IENS,38)=TADDTFT
- +159 ; stop code
- +160 SET TADSCC=$GET(@GLINSTAD@("StopCode",0,"Code",0))
- SET FDA(INSFTAD,INS2IENS,41)=TADSCC
- +161 SET TADSCT=$GET(@GLINSTAD@("StopCode",0,"Text",0))
- SET FDA(INSFTAD,INS2IENS,43)=TADSCT
- +162 SET TADSCQ=$GET(@GLINSTAD@("StopCode",0,"Qualifier",0))
- SET FDA(INSFTAD,INS2IENS,42)=TADSCQ
- +163 DO CFDA^PSOERXIU(.FDA)
- +164 DO UPDATE^DIE(,"FDA")
- KILL FDA
- +165 ;D MDRSF^PSOERXII(GLINS,ERXIEN,MIEN,NINSIEN)
- End DoDot:2
- End DoDot:1
- +166 DO MDR^PSOERXII(ERXIEN,MIEN,MTYPE,MEDTYPE)
- +167 QUIT