Changeset 186 for ccr/trunk/p/CCRMEDS1.m


Ignore:
Timestamp:
Oct 6, 2008, 11:46:35 AM (16 years ago)
Author:
George Lilly
Message:

med directions working

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ccr/trunk/p/CCRMEDS1.m

    r182 r186  
    113113 . ;
    114114 . N DIRNUM S DIRNUM=0 ; Sigline number
     115 . S DIRCNT=0 ; COUNT OF MULTIPLE DIRECTIONS
    115116 . F  S DIRNUM=$O(^PSRX(RXIEN,6,DIRNUM)) Q:DIRNUM=""  D
    116  . . S @MAP@("M",DIRNUM,"MEDDIRECTIONDESCRIPTIONTEXT")=""  ; This is reserved for systems not able to generate the sig in components.
    117  . . S @MAP@("M",DIRNUM,"MEDDOSEINDICATOR")="1"  ; means that we are specifying it. See E2369-05.
     117 . . S DIRCNT=DIRCNT+1 ; INCREMENT DIRECTIONS COUNT
     118 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDDIRECTIONDESCRIPTIONTEXT")=""  ; This is reserved for systems not able to generate the sig in components.
     119 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDDOSEINDICATOR")="1"  ; means that we are specifying it. See E2369-05.
    118120 . . N SIGDATA S SIGDATA=^PSRX(RXIEN,6,DIRNUM,0)
    119  . . S @MAP@("M",DIRNUM,"MEDDELIVERYMETHOD")=$P(SIGDATA,U,9)
    120  . . S @MAP@("M",DIRNUM,"MEDDOSEVALUE")=$P(SIGDATA,U,1)
    121  . . S @MAP@("M",DIRNUM,"MEDDOSEUNIT")=@MAP@("MEDCONCUNIT")
    122  . . S @MAP@("M",DIRNUM,"MEDRATEVALUE")=""  ; For inpatient
    123  . . S @MAP@("M",DIRNUM,"MEDRATEUNIT")=""  ; For inpatient
    124  . . S @MAP@("M",DIRNUM,"MEDVEHICLETEXT")=""  ; For inpatient
    125  . . S @MAP@("M",DIRNUM,"MEDDIRECTIONROUTETEXT")=$$GET1^DIQ(51.2,$P(SIGDATA,U,7),.01)
    126  . . S @MAP@("M",DIRNUM,"MEDFREQUENCYVALUE")=$P(SIGDATA,U,8)
     121 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDDELIVERYMETHOD")=$P(SIGDATA,U,9)
     122 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDDOSEVALUE")=$P(SIGDATA,U,1)
     123 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDDOSEUNIT")=@MAP@("MEDCONCUNIT")
     124 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDRATEVALUE")=""  ; For inpatient
     125 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDRATEUNIT")=""  ; For inpatient
     126 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDVEHICLETEXT")=""  ; For inpatient
     127 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDDIRECTIONROUTETEXT")=$$GET1^DIQ(51.2,$P(SIGDATA,U,7),.01)
     128 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDFREQUENCYVALUE")=$P(SIGDATA,U,8)
    127129 . . ; Invervals... again another call.
    128130 . . ; In the wisdom of the original programmers, the schedule is a free text field
     
    141143 . . . N SUB S SUB=$O(SCHEDATA(0))
    142144 . . . S INTERVAL=SCHEDATA(SUB,2)
    143  . . S @MAP@("M",DIRNUM,"MEDINTERVALVALUE")=INTERVAL
    144  . . S @MAP@("M",DIRNUM,"MEDINTERVALUNIT")="Minute"
    145  . . S @MAP@("M",DIRNUM,"MEDDURATIONVALUE")=$P(SIGDATA,U,5)
    146  . . S @MAP@("M",DIRNUM,"MEDDURATIONUNIT")=""
    147  . . S @MAP@("M",DIRNUM,"MEDPRNFLAG")=$P(SIGDATA,U,8)["PRN"
    148  . . S @MAP@("M",DIRNUM,"MEDPROBLEMOBJECTID")=""
    149  . . S @MAP@("M",DIRNUM,"MEDPROBLEMTYPETXT")=""
    150  . . S @MAP@("M",DIRNUM,"MEDPROBLEMDESCRIPTION")=""
    151  . . S @MAP@("M",DIRNUM,"MEDPROBLEMCODEVALUE")=""
    152  . . S @MAP@("M",DIRNUM,"MEDPROBLEMCODINGSYSTEM")=""
    153  . . S @MAP@("M",DIRNUM,"MEDPROBLEMCODINGVERSION")=""
    154  . . S @MAP@("M",DIRNUM,"MEDPROBLEMSOURCEACTORID")=""
    155  . . S @MAP@("M",DIRNUM,"MEDSTOPINDICATOR")=""
    156  . . S @MAP@("M",DIRNUM,"MEDDIRSEQ")=DIRNUM
     145 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDINTERVALVALUE")=INTERVAL
     146 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDINTERVALUNIT")="Minute"
     147 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDDURATIONVALUE")=$P(SIGDATA,U,5)
     148 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDDURATIONUNIT")=""
     149 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDPRNFLAG")=$P(SIGDATA,U,8)["PRN"
     150 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDPROBLEMOBJECTID")=""
     151 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDPROBLEMTYPETXT")=""
     152 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDPROBLEMDESCRIPTION")=""
     153 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDPROBLEMCODEVALUE")=""
     154 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDPROBLEMCODINGSYSTEM")=""
     155 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDPROBLEMCODINGVERSION")=""
     156 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDPROBLEMSOURCEACTORID")=""
     157 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDSTOPINDICATOR")=""
     158 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDDIRSEQ")=DIRNUM
    157159 . . N DIRMOD S DIRMOD=$P(SIGDATA,U,6)
    158  . . S @MAP@("M",DIRNUM,"MEDMULDIRMOD")=$S(DIRMOD="T":"THEN",DIRMOD="A":"AND",DIRMOD="X":"EXCEPT",1:"")
     160 . . S @MAP@("M","DIRECTIONS",DIRCNT,"MEDMULDIRMOD")=$S(DIRMOD="T":"THEN",DIRMOD="A":"AND",DIRMOD="X":"EXCEPT",1:"")
    159161 . ;
    160162 . ; --- END OF DIRECTIONS ---
     
    169171 . D MAP^GPLXPATH(MINXML,MAP,RESULT)
    170172 . ; D PARY^GPLXPATH(RESULT)
     173 . ; MAPPING DIRECTIONS
     174 . N MEDDIR1,DIRXML1 S DIRXML1="MEDDIR1" ; VARIABLE AND NAME VARIABLE TEMPLATE
     175 . N MEDDIR2,DIRXML2 S DIRXML2="MEDDIR2" ; VARIABLE AND NAME VARIABLE RESULT
     176 . D QUERY^GPLXPATH(MINXML,"//Medications/Medication/Directions",DIRXML1)
     177 . D REPLACE^GPLXPATH(RESULT,"","//Medications/Medication/Directions")
     178 . ; N MDZ1,MDZNA
     179 . I DIRCNT>0 D  ; IF THERE ARE DIRCTIONS
     180 . . F MDZ1=1:1:DIRCNT  D  ; FOR EACH DIRECTION
     181 . . . S MDZNA=$NA(@MAP@("M","DIRECTIONS",MDZ1))
     182 . . . D MAP^GPLXPATH(DIRXML1,MDZNA,DIRXML2)
     183 . . . D INSINNER^GPLXPATH(RESULT,DIRXML2)
    171184 . D:MEDCOUNT=1 CP^GPLXPATH(RESULT,OUTXML) ; First one is a copy
    172185 . D:MEDCOUNT>1 INSINNER^GPLXPATH(OUTXML,RESULT) ; AFTER THE FIRST, INSERT INNER XML
Note: See TracChangeset for help on using the changeset viewer.