Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PSSFDBDI

PSSFDBDI.m

Go to the documentation of this file.
  1. PSSFDBDI ;BIR/LE - Sends XML Request to PEPS via HWSC for Dose Information ;01/23/12
  1. ;;1.0;PHARMACY DATA MANAGEMENT;**160,175,201**;9/30/97;Build 25
  1. ;
  1. ; Reference to ^PSNDF(50.68 is supported by DBIA #3735
  1. ; Reference to ^MXMLDOM is supported by DBIA #3561
  1. ;
  1. ; this routine is responsible for performing dosing information queries against a drug database to retrieve dose information.
  1. ; the architecture parses the XML stream into tokens and is stored in a ^TMP($J,"PSSFDBDI")
  1. ;
  1. ;NEW file structure:
  1. ;^TMP($J,"PSSFDBDI",0)=file description^^total # sequences^total # sequences
  1. ;^TMP($J,"PSSFDBDI",PSSGCN,0)=GCNSEQNO evaluated^passed in GCNSEQNO^dispensableDrugName^dispensableDrugDescription^fdbdx
  1. ;^TMP($J,"PSSFDBDI",PSSGCN,doseRanges",SEQ,1,0)=custom^category^dosetypeid^dosetypedescription^doserouteid^doseroutedescription^agelowindays^agehigh indays
  1. ;^TMP($J,"PSSFDBDI",PSSGCN,doseRanges",SEQ,2,0)=hitIndicationID^hitindication description^indicationid^indicationdescription^^indicationidtype^resulttype^warningcode
  1. ;^TMP($J,"PSSFDBDI",PSSGCN,doseRanges",SEQ,3,0)=bsarequired^weightrequired^hepaticimpairement^renal impairement^loweliminationhalflife^higheliminationhalflife^halflifeunit^crclthreshold^crclthresholdunit
  1. ;^TMP($J,"PSSFDBDI",PSSGCN,doseRanges",SEQ,4,0)=durationlow^durationhigh^maxduration^frequencylow^frequencyhigh
  1. ;^TMP($J,"PSSFDBDI",PSSGCN,doseRanges",SEQ,5,0)=doselow^doselowunit^dosehigh^dosehighunit^doseformlow^doseformlowunit^doseformhigh^doseformhighunit
  1. ;^TMP($J,"PSSFDBDI",PSSGCN,doseRanges",SEQ,6,0)=maxsingledose^maxsingledoseunit^maxsingledoseform^maxsingledoseformunit^maxdailydose^maxdailydoseunit^maxdailydoseform^maxdailydoseformunit
  1. ;^TMP($J,"PSSFDBDI",PSSGCN,doseRanges",SEQ,7,0)maxlidfetimedose^maxlifetimedoseunit^maxlifetimedoseform^maxlifetimedoseformunit
  1. ;no longer built;^TMP($J,"PSSFDBDI",PSSGCN,"minMax",ageLowInDays,ageHighInDays,1)=doseLow^doseLowUnit^doseHigh^doseHighUnit^doseFormLow^doseFormLowUnit^doseFormHigh^doseFormHighUnit
  1. ;no longer built^TMP($J,"PSSFDBDI",PSSGCN,"minMax",ageLowInDays,ageHighInDays,2)=maxDailyDose^maxDailyDoseUnit^maxDailyDoseForm^maxDailyDoseFormUnit^resultType^warningCode^bsaRequired^weightRequired
  1. ;
  1. ; Cross References "doseRanges" nodes:
  1. ;^TMP($J,"PSSFDBDI","A",doseTypeId,ageLowInDays,ageHighInDays,SEQ)=custom
  1. ;^TMP($J,"PSSFDBDI","B",gcnSeqNo)=dispensableDrugName
  1. ;^TMP($J,"PSSFDBDI","C",ageLowInDays,ageHighInDays,doseTypeId,SEQ)=custom
  1. ;
  1. Q
  1. EN(PSSGCN,PSSOUT) ;get dosing information based on GCNSEQNO
  1. ; input: PSSGCN - GCCNSEQNO from file 50.68
  1. ;
  1. ; output: builds TMP file for dosing information
  1. ; e.g. ^TMP($J,"PSSFDBDI"
  1. ; PSSOUT(0) = 1 for successful
  1. ; -1^error message (when an error occurs: example "-1^ERROR #6059: Unable to open TCP/IP socket to server nn.n.nnn.nn:nnnn"
  1. ;
  1. K ^TMP($J,"PSSFDBDI")
  1. I PSSGCN=""!(PSSGCN=0) S PSSOUT="",PSSOUT(0)="-1^GCN sequence number is not defined." Q
  1. N PSSXML,PSSFDBDX,GCNSEQ,BASE,PSSRETR2,PSSFDBDN
  1. S PSSFDBDN=$$CHKSTAT^PSSDSFDB() I PSSFDBDN S PSSOUT(0)=PSSFDBDN Q
  1. S GCNSEQ=PSSGCN,BASE=$T(+0)_" DOSEINFO"
  1. S PSSXML=$$BLDXML(GCNSEQ) ; build the xml request
  1. RETRY ;Retry line tag
  1. D POST(PSSXML,PSSGCN,.PSSOUT) ; post the request and process the results
  1. I $P($G(PSSOUT(0)),"^")=-1,'$G(PSSRETR2) K PSSOUT S PSSRETR2=1 H 3 G RETRY
  1. Q
  1. ;
  1. BLDXML(GCNSEQ) ; build and return the XML request with drug information for given GCN sequence number
  1. ; input: drug IEN from drug file (#50)
  1. ; output: returns the XML request for given GCN sequence number
  1. ; Example: where 22211 is the GCN Sequence number passed by reference at line tag EN above.
  1. ; PSSXML="<?xml version=""1.0"" encoding=""utf-8"" ?><dosingInfoRequest xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""
  1. ; xsi:schemaLocation=""gov/va/med/pharmacy/peps/external/common/preencapsulation/vo/dosing/info/request dosingInfoSchemaInput.xsd""
  1. ; xmlns=""gov/va/med/pharmacy/peps/external/common/preencapsulation/vo/dosing/info/request"">
  1. ; <dosingInfo gcnSeqNo=""22211"" fdbdx=""999"" />
  1. ; </dosingInfoRequest>"
  1. ;
  1. N DRUGTAG,ENDTAG,FDBDX,SPACE,TAG,SUBXML,SCHEMA,XMLNS,SPACE,DOSETAG
  1. S PSSXML="",SPACE=$C(32)
  1. ;
  1. ;xml header info - <?xml version="1.0" encoding="utf-8" ?>
  1. S PSSXML=PSSXML_$$XMLHDR^MXMLUTL
  1. ;
  1. S SPACE=$C(32)
  1. S SCHEMA="gov/va/med/pharmacy/peps/external/common/preencapsulation/vo/dosing/info/request dosingInfoSchemaInput.xsd"
  1. S XMLNS="gov/va/med/pharmacy/peps/external/common/preencapsulation/vo/dosing/info/request"
  1. S TAG="dosingInfoRequest"
  1. S SUBXML="<"_TAG_SPACE
  1. S SUBXML=SUBXML_$$ATRIBUTE^PSSHRCOM(SPACE_"xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance")
  1. S SUBXML=SUBXML_$$ATRIBUTE^PSSHRCOM(SPACE_"xsi:schemaLocation",SCHEMA)
  1. S SUBXML=SUBXML_$$ATRIBUTE^PSSHRCOM(SPACE_"xmlns",XMLNS)
  1. S PSSXML=PSSXML_SUBXML_">"
  1. S DOSETAG="<dosingInfo",ENDTAG="/>",FDBDX=999
  1. S PSSXML=PSSXML_DOSETAG_SPACE_$$ATRIBUTE^PSSHRCOM("gcnSeqNo",GCNSEQ)_SPACE_$$ATRIBUTE^PSSHRCOM("fdbdx",FDBDX)_SPACE_ENDTAG
  1. S PSSXML=PSSXML_"</"_TAG_">"
  1. Q PSSXML
  1. ;
  1. POST(XML,PSSGCN,PSSOUT) ; post the XML request to PEPS server and return the routes
  1. ; input: XML request
  1. ; output: PSSOUT - array containing the list of route names for the given drug.
  1. ;
  1. N PSS,PSSERR,PSSFDBDI S PSSFDBDI=1
  1. N $ETRAP,$ESTACK
  1. ; Set error trap
  1. SET $ETRAP="DO ERROR^PSSHTTP"
  1. K ^TMP($J,"OUT") ; if exists from previous runs, posting would not execute.
  1. ;
  1. S PSS("server")="PEPS"
  1. S PSS("webserviceName")="DOSING_INFO"
  1. S PSS("path")="dosinginfo"
  1. S PSS("parameterName")="xmlRequest"
  1. S PSS("parameterValue")=XML
  1. ;
  1. ; get instance of client REST request object
  1. SET PSS("restObject")=$$GETREST^XOBWLIB(PSS("webserviceName"),PSS("server"))
  1. IF $DATA(^TMP($JOB,"OUT","EXCEPTION"))>0 S PSSOUT(0)="-1^"_^TMP($JOB,"OUT","EXCEPTION") K ^TMP($JOB,"OUT","EXCEPTION") Q PSSOUT
  1. ;
  1. ; insert XML as parameter
  1. DO PSS("restObject").InsertFormData(PSS("parameterName"),PSS("parameterValue"))
  1. IF $DATA(^TMP($JOB,"OUT","EXCEPTION"))>0 S PSSOUT(0)="-1^"_^TMP($JOB,"OUT","EXCEPTION") K ^TMP($JOB,"OUT","EXCEPTION") QUIT PSSOUT
  1. ;
  1. ; execute HTTP Post method
  1. SET PSS("postResult")=$$POST^XOBWLIB(PSS("restObject"),PSS("path"),.PSSERR)
  1. IF $DATA(^TMP($JOB,"OUT","EXCEPTION"))>0 S PSSOUT(0)="-1^"_^TMP($JOB,"OUT","EXCEPTION") K ^TMP($JOB,"OUT","EXCEPTION") QUIT PSSOUT
  1. ;
  1. ; error handling
  1. DO:'PSS("postResult")
  1. . SET PSSOUT(0)=-1_U_"Unable to make http request."
  1. . SET PSS("result")=0
  1. . QUIT
  1. ;
  1. ; if every thing is ok parse the returned xml result
  1. D:PSS("postResult")
  1. .S PSS("result")=##class(gov.va.med.pre.ws.XMLHandler).getHandleToXmlDoc(PSS("restObject").HttpResponse.Data, .DOCHAND)
  1. .S PSSOUT(0)=0 ; this will be set to 1 if non-null route text value(s) are found in line tag PARSRTE
  1. .D PARSXML(DOCHAND,PSSGCN,.PSSOUT)
  1. .Q
  1. S PSSOUT(0)=1
  1. I $D(^TMP($J,"OUT","EXCEPTION")) S PSSOUT(0)="-1^"_^TMP($J,"OUT","EXCEPTION") K ^TMP($J,"OUT","EXCEPTION"),^TMP($J,"PSSFDBDI")
  1. ; Clean up after using the handle
  1. D DELETE^MXMLDOM(DOCHAND)
  1. K ^TMP($J,"OUT XML")
  1. Q PSS("result")
  1. ;
  1. PARSXML(DOCHAND,PSSGCN,PSSOUT) ; read result
  1. ; @DOCHAND = Handle to XML Document
  1. ; @PSSOUT = output array
  1. S PSS("rootName")=$$NAME^MXMLDOM(DOCHAND,1)
  1. S PSS("child")=0
  1. F S PSS("child")=$$CHILD^MXMLDOM(DOCHAND,1,PSS("child")) Q:PSS("child")=0 D
  1. .S PSS("childName")=$$NAME^MXMLDOM(DOCHAND,PSS("child"))
  1. .D:PSS("childName")="dosingInfo" PARSDOIN(DOCHAND,+PSSGCN,PSS("child"),.PSSOUT)
  1. Q
  1. ;
  1. PARSDOIN(DOCHAND,PSSGCN,NODE,PSSOUT) ; parse dosingInfo element
  1. ; @DOCHAND = Handle to XML Document
  1. ; @NODE = Document node
  1. ; @PSSOUT = output array
  1. N PSS,PSSDR,PSSMM,PSSOUT2
  1. D GETFILE(.PSSDR,.PSSMM)
  1. D READDOIN(DOCHAND,PSSGCN,NODE,.PSSOUT,.PSSOUT2)
  1. S PSS("child")=0
  1. F S PSS("child")=$$CHILD^MXMLDOM(DOCHAND,NODE,PSS("child")) Q:PSS("child")=0 D
  1. .S PSS("childName")=$$NAME^MXMLDOM(DOCHAND,PSS("child"))
  1. .D:PSS("childName")="doseRanges" PARSDORG(DOCHAND,PSSGCN,PSS("child"),.PSSOUT,.PSSOUT2,.PSSDR)
  1. .;D:PSS("childName")="minMaxResults" PARSDOMM(DOCHAND,PSSGCN,PSS("child"),.PSSOUT,.PSSOUT2,.PSSMM)
  1. .;D:PSS("childName")="neonatalDoseRanges" PARSDONN(DOCHAND,PSSGCN,PSS("child"),.PSSOUT)
  1. .D:PSS("childName")="dispensableDrugName" READDODN(DOCHAND,PSSGCN,PSS("child"),.PSSOUT,.PSSOUT2)
  1. .D:PSS("childName")="dispensableDrugDescription" READDODD(DOCHAND,PSSGCN,PSS("child"),.PSSOUT,.PSSOUT2)
  1. D SETXREFS(.PSSOUT2)
  1. M ^TMP($J,"PSSFDBDI")=PSSOUT2
  1. Q
  1. ;
  1. READDOIN(DOCHAND,PSSGCN,NODE,PSSOUT,PSSOUT2) ; read dosingInfo attributes
  1. ; @DOCHAND = Handle to XML Document
  1. ; @NODE = Document node
  1. ; @PSSOUT = output array
  1. ; @PSSOUT2 = output array for building ^tmp
  1. N PSS
  1. S PSS("attr")=""
  1. F S PSS("attr")=$$ATTRIB^MXMLDOM(DOCHAND,NODE,PSS("attr")) Q:PSS("attr")="" D
  1. .I (PSS("attr"))="fdbdx" D Q
  1. ..S PSS("fdbdx")=$$VALUE^MXMLDOM(DOCHAND,NODE,PSS("attr"))
  1. ..S $P(PSSOUT2(PSSGCN,0),U,5)=PSS("fdbdx")
  1. .I (PSS("attr"))="gcnSeqNo" D Q
  1. ..S PSS("gcnSeqNo")=$$VALUE^MXMLDOM(DOCHAND,NODE,PSS("attr"))
  1. ..S $P(PSSOUT2(PSSGCN,0),U)=PSS("gcnSeqNo")
  1. S $P(PSSOUT2(PSSGCN,0),U,2)=PSSGCN
  1. Q
  1. ;
  1. PARSDORG(DOCHAND,PSSGCN,NODE,PSSOUT,PSSOUT2,PSSDR) ; parse doseRange element
  1. ; @DOCHAND = Handle to XML Document
  1. ; @PSSGCN = GCN passed in to API
  1. ; @NODE = Document node
  1. ; @PSSOUT = output array
  1. ; @PSSOUT2 = output array for building ^tmp
  1. ; @PSSDR = array used for finding element with ^tmp node locations
  1. N PSS
  1. S PSS("child")=0
  1. F S PSS("child")=$$CHILD^MXMLDOM(DOCHAND,NODE,PSS("child")) Q:PSS("child")=0 D
  1. .S PSS("childName")=$$NAME^MXMLDOM(DOCHAND,PSS("child"))
  1. .S PSSDR(0)=PSSDR(0)+1
  1. .D:PSS("childName")="doseRange"
  1. ..D READDORG(DOCHAND,PSSGCN,PSS("child"),.PSSOUT,.PSSOUT2,.PSSDR)
  1. ..D PARSDORC(DOCHAND,PSSGCN,PSS("child"),.PSSOUT,.PSSOUT2,.PSSDR)
  1. Q
  1. ;
  1. READDORG(DOCHAND,PSSGCN,NODE,PSSOUT,PSSOUT2,PSSDR) ; read doseRange attributes
  1. ; @DOCHAND = Handle to XML Document
  1. ; @PSSGCN = GCN passed in to API
  1. ; @NODE = Document node
  1. ; @PSSOUT = output array
  1. ; @PSSOUT2 = output array for building ^tmp
  1. ; @PSSDR = array used for finding element with ^tmp node locations
  1. N PSS
  1. S PSS("attr")=""
  1. F S PSS("attr")=$$ATTRIB^MXMLDOM(DOCHAND,NODE,PSS("attr")) Q:PSS("attr")="" D:$D(PSSDR(PSS("attr")))
  1. .N ANODE,APIECE
  1. .S ANODE=$P(PSSDR(PSS("attr")),U,1)
  1. .Q:ANODE=""
  1. .S APIECE=$P(PSSDR(PSS("attr")),U,2)
  1. .Q:APIECE=""
  1. .S $P(PSSOUT2(PSSGCN,"doseRanges",PSSDR(0),ANODE,0),U,APIECE)=$$VALUE^MXMLDOM(DOCHAND,NODE,PSS("attr"))
  1. Q
  1. ;
  1. PARSDORC(DOCHAND,PSSGCN,NODE,PSSOUT,PSSOUT2,PSSDR) ; parse doseRange child element
  1. ; @DOCHAND = Handle to XML Document
  1. ; @PSSGCN = GCN passed in to API
  1. ; @NODE = Document node
  1. ; @PSSOUT = output array
  1. ; @PSSOUT2 = output array for building ^tmp
  1. ; @PSSDR = array used for finding element with ^tmp node locations
  1. N PSS
  1. S PSS("child")=0
  1. F S PSS("child")=$$CHILD^MXMLDOM(DOCHAND,NODE,PSS("child")) Q:PSS("child")=0 D
  1. .S PSS("childName")=$$NAME^MXMLDOM(DOCHAND,PSS("child"))
  1. .D:$D(PSSDR(PSS("childName")))
  1. ..N ANODE,APIECE
  1. ..S ANODE=$P(PSSDR(PSS("childName")),U,1)
  1. ..Q:ANODE=""
  1. ..S APIECE=$P(PSSDR(PSS("childName")),U,2)
  1. ..Q:APIECE=""
  1. ..S $P(PSSOUT2(PSSGCN,"doseRanges",PSSDR(0),ANODE,0),U,APIECE)=$$GETTEXT^PSSHRCOM(DOCHAND,PSS("child"))
  1. Q
  1. ;
  1. PARSDOMM(DOCHAND,PSSGCN,NODE,PSSOUT,PSSOUT2,PSSMM) ; parse minMaxResults element ; not implemented as of PSS*1*201
  1. ; @DOCHAND = Handle to XML Document
  1. ; @PSSGCN = GCN passed in to API
  1. ; @NODE = Document node
  1. ; @PSSOUT = output array
  1. ; @PSSOUT2 = output array for building ^tmp
  1. ; @PSSMM = array used for finding element with ^tmp node locations
  1. Q
  1. N PSS
  1. S PSS("child")=0
  1. F S PSS("child")=$$CHILD^MXMLDOM(DOCHAND,NODE,PSS("child")) Q:PSS("child")=0 D
  1. .S PSS("childName")=$$NAME^MXMLDOM(DOCHAND,PSS("child"))
  1. .;W !?6,PSS("child")_" : "_PSS("childName")
  1. Q
  1. ;
  1. PARSDONN(DOCHAND,PSSGCN,NODE,PSSOUT) ; parse neonatalDoseRanges element ; not implemented as of PSS*1*201
  1. ; @DOCHAND = Handle to XML Document
  1. ; @PSSGCN = GCN passed in to API
  1. ; @NODE = Document node
  1. ; @PSSOUT = output array
  1. Q
  1. N PSS
  1. S PSS("child")=0
  1. F S PSS("child")=$$CHILD^MXMLDOM(DOCHAND,NODE,PSS("child")) Q:PSS("child")=0 D
  1. .S PSS("childName")=$$NAME^MXMLDOM(DOCHAND,PSS("child"))
  1. .;W !?6,PSS("child")_" : "_PSS("childName")
  1. Q
  1. ;
  1. READDODN(DOCHAND,PSSGCN,NODE,PSSOUT,PSSOUT2) ; read dispensableDrugName element
  1. ; @DOCHAND = Handle to XML Document
  1. ; @PSSGCN = GCN passed in to API
  1. ; @NODE = Document node
  1. ; @PSSOUT = output array
  1. ; @PSSOUT2 = output array for building ^tmp
  1. N PSS
  1. S PSS("childText")=$$GETTEXT^PSSHRCOM(DOCHAND,NODE)
  1. D:PSS("childText")'=""
  1. .S $P(PSSOUT2(PSSGCN,0),U,3)=PSS("childText")
  1. Q
  1. ;
  1. READDODD(DOCHAND,PSSGCN,NODE,PSSOUT,PSSOUT2) ; read dispensableDrugDescription element
  1. ; @DOCHAND = Handle to XML Document
  1. ; @PSSGCN = GCN passed in to API
  1. ; @NODE = Document node
  1. ; @PSSOUT = output array
  1. ; @PSSOUT2 = output array for building ^tmp
  1. N PSS
  1. S PSS("childText")=$$GETTEXT^PSSHRCOM(DOCHAND,NODE)
  1. D:PSS("childText")'=""
  1. .S $P(PSSOUT2(PSSGCN,0),U,4)=PSS("childText")
  1. Q
  1. ;
  1. SETXREFS(PSSOUT2) ; set "A","B","C", zero node cross references & values
  1. N FIRST,FLD2,FLD8,FLD7,FLD3,PSSSORT
  1. S (FIRST,GCNSEQ,SEQ,SEQ2,SEQ3,SEQ4,FTYPE,TYP2,TYP3)="",FTYPE=0
  1. M PSSSORT=PSSOUT2
  1. F S GCNSEQ=$O(PSSOUT2(GCNSEQ)) Q:GCNSEQ="" D
  1. .I '$G(FIRST),$D(PSSOUT2(GCNSEQ)) D
  1. ..S PSSSORT("B",GCNSEQ)=$P(PSSOUT2(GCNSEQ,0),"^",3)
  1. ..S FIRST=1
  1. ..F S FTYPE=$O(PSSOUT2(GCNSEQ,FTYPE)) Q:FTYPE=""!(FTYPE="A") D
  1. ...F S SEQ=$O(PSSOUT2(GCNSEQ,FTYPE,SEQ)) Q:SEQ="" D
  1. ....F S SEQ2=$O(PSSOUT2(GCNSEQ,FTYPE,SEQ,SEQ2)) Q:SEQ2="" D
  1. .....F S SEQ3=$O(PSSOUT2(GCNSEQ,FTYPE,SEQ,SEQ2,SEQ3)) Q:SEQ3="" D
  1. ......I SEQ2=1,FTYPE="doseRanges" D
  1. .......N FLDS,FLD1
  1. .......S (FLDS,FLD3,FLD7,FLD8,FLD1)=""
  1. .......S FLDS=PSSOUT2(GCNSEQ,FTYPE,SEQ,SEQ2,SEQ3)
  1. .......F I=1,3,7,8 S @("FLD"_I)=$P(FLDS,"^",I)
  1. .......S PSSSORT("A",FLD3,FLD7,FLD8,SEQ)=FLD1
  1. .......S PSSSORT("C",FLD7,FLD8,FLD3,SEQ)=FLD1
  1. S PSSSORT(0)="DOSING INFORMATION FOR A SPECIFIC DRUG^^1^1"
  1. M PSSOUT2=PSSSORT
  1. Q
  1. ;
  1. GETFILE(PSSDR,PSSMM) ;
  1. N I,PSSTYPE,PSSFILE,PSSFLD,PSSNODE,PSSPIECE
  1. F I=1:1 S PSSFILE=$P($T(FILE+I),";;",2,99) Q:PSSFILE="" D
  1. .S PSSTYPE=$P(PSSFILE,";"),PSSFLD=$P(PSSFILE,";",2),PSSNODE=$P(PSSFILE,";",3),PSSPIECE=$P(PSSFILE,";",4)
  1. .I PSSTYPE="" S PSSDR(PSSFLD)=PSSNODE_"^"_PSSPIECE
  1. .I PSSTYPE="MM" S PSSMM(PSSFLD)=PSSNODE_"^"_PSSPIECE
  1. Q
  1. ;
  1. FILE ;file structure for the temp file for each data field imported from FDB
  1. ;;;0
  1. ;;;custom;1;1
  1. ;;;category;1;2
  1. ;;;doseTypeId;1;3
  1. ;;;doseTypeDescription;1;4
  1. ;;;doseRouteId;1;5
  1. ;;;intlDoseRouteDescription;1;6
  1. ;;;ageLowInDays;1;7
  1. ;;;ageHighInDays;1;8
  1. ;;;hitIndicationId;2;1
  1. ;;;hitIndicationDescription;2;2
  1. ;;;indicationId;2;3
  1. ;;;indicationDescription;2;4
  1. ;;;indicationIdType;2;5
  1. ;;;resultType;2;6
  1. ;;;warningCode;2;7
  1. ;;;bsaRequired;3;1
  1. ;;;weightRequired;3;2
  1. ;;;hepaticImpairment;3;3
  1. ;;;renalImpairment;3;4
  1. ;;;lowEliminationHalfLife;3;5
  1. ;;;highEliminationHalfLife;3;6
  1. ;;;halfLifeUnit;3;7
  1. ;;;crclThreshold;3;8
  1. ;;;crclThresholdUnit;3;9
  1. ;;;durationLow;4;1
  1. ;;;durationHigh;4;2
  1. ;;;maxDuration;4;3
  1. ;;;frequencyLow;4;4
  1. ;;;frequencyHigh;4;5
  1. ;;;doseLow;5;1
  1. ;;;doseLowUnit;5;2
  1. ;;;doseHigh;5;3
  1. ;;;doseHighUnit;5;4
  1. ;;;doseFormLow;5;5
  1. ;;;doseFormLowUnit;5;6
  1. ;;;doseFormHigh;5;7
  1. ;;;doseFormHighUnit;5;8
  1. ;;;maxSingleDose;6;1
  1. ;;;maxSingleDoseUnit;6;2
  1. ;;;maxSingleDoseForm;6;3
  1. ;;;maxSingleDoseFormUnit;6;4
  1. ;;;maxDailyDose6;5
  1. ;;;maxDailyDoseUnit;6;6
  1. ;;;maxDailyDoseForm;6;7
  1. ;;;maxDailyDoseFormUnit;6;8
  1. ;;;maxLifetimeDose;7;1
  1. ;;;maxLifetimeDoseUnit;7;2
  1. ;;;maxLifetimeDoseForm;7;3
  1. ;;;maxLifetimeDoseFormUnit;7;4
  1. ;;MM;0
  1. ;;MM;doseLow;1;1
  1. ;;MM;doseLowUnit;1;2
  1. ;;MM;doseHigh;1;3
  1. ;;MM;doseHighUnit;1;4
  1. ;;MM;doseFormLow;1;5
  1. ;;MM;doseFormLowUnit;1;6
  1. ;;MM;doseFormHigh;1;7
  1. ;;MM;doseFormHighUnit;1;8
  1. ;;MM;maxDailyDose;2;1
  1. ;;MM;maxDailyDoseUnit;2;2
  1. ;;MM;maxDailyDoseForm;2;3
  1. ;;MM;maxDailyDoseFormUnit;2;4
  1. ;;MM;resultType;2;5
  1. ;;MM;warningCode;2;6
  1. ;;MM;bsaRequired;2;7
  1. ;;MM;weightRequired;2;8