Changeset 322 for ccr/trunk/p/CCRMEDS6.m
- Timestamp:
- Jan 11, 2009, 2:14:30 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ccr/trunk/p/CCRMEDS6.m
r320 r322 76 76 . ; We need to get DUZ from filman file 52 (Prescription) 77 77 . ; Field 4;; IEN is Piece 1 of Meds stripped of trailing characters. 78 . S @MAP@("MEDSOURCEACTORID")="ACTORPROVIDER_"_$$GET1^DIQ(52,+$P(MEDS(MEDCNT),U),4,"I") 78 . N RXIEN S RXIEN=+$P(MEDS(MEDCNT),U) 79 . S @MAP@("MEDSOURCEACTORID")="ACTORPROVIDER_"_$$GET1^DIQ(52,RXIEN,4,"I") 79 80 . S @MAP@("MEDPRODUCTNAMETEXT")=$P(MEDS(MEDCNT),U,3) 80 . ; Here we get the RxNorm information 81 . S @MAP@("MEDPRODUCTNAMECODEVALUE")=MED(27) 82 . S @MAP@("MEDPRODUCTNAMECODINGINGSYSTEM")="NDC" 83 . S @MAP@("MEDPRODUCTNAMECODEVERSION")="none" 84 . S @MAP@("MEDBRANDNAMETEXT")=MED(6.5) 81 . ; --- RxNorm Stuff 82 . ; 176.001 is the file for Concepts; 176.003 is the file for 83 . ; sources (i.e. for RxNorm Version) 84 . ; 85 . ; I use 176.001 for the Vista version of this routine (files 1-3) 86 . ; Since IHS does not have VUID's, I will be getting RxNorm codes 87 . ; using NDCs. My specially crafted index (sounds evil) named "NDC" 88 . ; is in file 176.002. The file is called RxNorm NDC to VUID. 89 . ; Except that I don't need the VUID, but it's there if I need it. 90 . ; 91 . ; We obviously need the NDC. That is easily obtained from the prescription. 92 . ; Field 27 in file 52 93 . ; N NDC S NDC=$$GET1^DIQ(52,RXIEN,27,"I") 94 . ; S NDC=$TR(NDC,"-") ; Remove dashes 95 . ; NDC="0"_NDC ; Add an extra zero to front; don't ask, that's how RxNorm has it 96 . N NDC S NDC=0 ; TODO:Remove this line after I fix the RxNorm 176.002 file. 97 . N RXNIEN,RXNORM,SRCIEN,RXNNAME,RXNVER 98 . I +NDC,$D(^C0CRXN) D ; $Data is for Systems that don't have our RxNorm file yet. 99 . . S RXNIEN=$$FIND1^DIC(176.002,,,NDC,"NDC") 100 . . S RXNORM=$$GET1^DIQ(176.002,RXNIEN,.01) 101 . . S SRCIEN=$$FIND1^DIC(176.003,,"B","RXNORM") 102 . . S RXNNAME=$$GET1^DIQ(176.003,SRCIEN,6) 103 . . S RXNVER=$$GET1^DIQ(176.003,SRCIEN,7) 104 . ; 105 . E S (RXNORM,RXNNAME,RXNVER)="" 106 . ; End if/else block 107 . S @MAP@("MEDPRODUCTNAMECODEVALUE")=RXNORM 108 . S @MAP@("MEDPRODUCTNAMECODINGINGSYSTEM")=RXNNAME 109 . S @MAP@("MEDPRODUCTNAMECODEVERSION")=RXNVER 110 . ; --- End RxNorm section 111 . ; 112 . ; Brand name is 52 field 6.5 113 . S @MAP@("MEDBRANDNAMETEXT")=$$GET1^DIQ(52,RXIEN,6.5,"I") 114 . ; 115 . ; Next I need Med Form (tab, cap etc), strength (250mg) 116 . ; concentration for liquids (250mg/mL) 117 . ; Since IHS does not have any of the new calls that 118 . ; Vista has, I will be doing a crosswalk: 119 . ; File 52, field 6 is Drug IEN in file 50 120 . ; File 50, field 22 is VA Product IEN in file 50.68 121 . ; In file 50.68, I will get the following: 122 . ; -- 1: Dosage Form 123 . ; -- 2: Strength 124 . ; -- 3: Units 125 . ; -- 8: Dispense Units 126 . ; -- Conc is 2 concatenated with 3 127 . ; 85 128 . N MEDIEN S MEDIEN=$P(MED(6),U) 86 129 . D DOSE^PSS50(MEDIEN,,,,,"DOSE") … … 106 149 . S @MAP@("MEDCONCVALUE")=$P(CONCDATA,U,3) 107 150 . S @MAP@("MEDCONCUNIT")=$P(CONCDATA,U,4) 108 . S @MAP@("MEDSIZETEXT")=$P(NDFDATA(23),U,2)_" "_$P(NDFDATA(24),U,2)109 151 . S @MAP@("MEDQUANTITYVALUE")=MED(7) 110 152 . ; Oddly, there is no easy place to find the dispense unit.
Note:
See TracChangeset
for help on using the changeset viewer.