| 1 | LA7SMU1 ;DALOI/JMC - Shipping Manifest Utility (Cont'd);5/5/97 14:44 | 
|---|
| 2 | ;;5.2;AUTOMATED LAB INSTRUMENTS;**27,46,65,64**;Sep 27, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | Q | 
|---|
| 5 | ; | 
|---|
| 6 | SMW(LA7SM) ; "Write" additional information on DIC lookup of #62.48. | 
|---|
| 7 | ; Called by DIC("W") | 
|---|
| 8 | ; Call with LA7SM = ien of entry in file #62.8 | 
|---|
| 9 | ; | 
|---|
| 10 | N LA7X,LA7Y,LA7EVC | 
|---|
| 11 | ; | 
|---|
| 12 | S LA7SM(0)=$G(^LAHM(62.8,LA7SM,0)) | 
|---|
| 13 | ; Shipping configuration | 
|---|
| 14 | S LA7X=" "_$P($G(^LAHM(62.9,$P(LA7SM(0),"^",2),0)),"^") | 
|---|
| 15 | S LA7X=LA7X_" Status: "_$$EXTERNAL^DILFD(62.8,.03,"",$P(LA7SM(0),"^",3)) | 
|---|
| 16 | S LA7EVC="SM"_$S($P(LA7SM(0),"^",3)=0:"00",1:$P("02^03^04^05^07","^",+$P(LA7SM(0),"^",3))) | 
|---|
| 17 | S LA7Y=$$SMED^LA7SMU(LA7SM,LA7EVC) | 
|---|
| 18 | S LA7X=LA7X_" as of "_$P(LA7Y,"^",2) | 
|---|
| 19 | D EN^DDIOL(LA7X,"","?18") | 
|---|
| 20 | Q | 
|---|
| 21 | ; | 
|---|
| 22 | ; | 
|---|
| 23 | ADATE ; Select accession dates if specified | 
|---|
| 24 | ; | 
|---|
| 25 | N DIR,DIRUT,DTOUT,LRAA,X,Y | 
|---|
| 26 | ; | 
|---|
| 27 | S DIR(0)="YO",DIR("A")="Use default accession dates",DIR("B")="YES" | 
|---|
| 28 | S DIR("?",1)="Enter ""YES"" to use the current accession date for each accession area utilized by this shipping configuration." | 
|---|
| 29 | S DIR("?",2)=" " | 
|---|
| 30 | S DIR("?")="If you select ""NO"" then you will be asked to specify a specific accession date and starting and ending accession numbers for each accession area." | 
|---|
| 31 | D ^DIR | 
|---|
| 32 | ; User aborted | 
|---|
| 33 | I $D(DIRUT) S LA7QUIT=1 Q | 
|---|
| 34 | ; Use default accession dates | 
|---|
| 35 | I Y=1 Q | 
|---|
| 36 | ; | 
|---|
| 37 | S X=0 | 
|---|
| 38 | F  S X=$O(^LAHM(62.9,+LA7SCFG,60,X)) Q:'X  D | 
|---|
| 39 | . S X(0)=$G(^LAHM(62.9,+LA7SCFG,60,X,0)) | 
|---|
| 40 | . I $P(X(0),"^",2),'$D(LA7AA($P(X(0),"^",2))) S LA7AA($P(X(0),"^",2))="" | 
|---|
| 41 | ; | 
|---|
| 42 | S LA7AA=0 | 
|---|
| 43 | F  S LA7AA=$O(LA7AA(LA7AA)) Q:'LA7AA  D  Q:LA7QUIT | 
|---|
| 44 | . N %DT,DTOUT,LRAA,LRAD,LREND,LRFAN,LRLAN | 
|---|
| 45 | . D EN^DDIOL("For Accession Area: "_$P($G(^LRO(68,LA7AA,0)),"^"),"","!!?2") | 
|---|
| 46 | . S LRAA=LA7AA D ADATE^LRWU3 | 
|---|
| 47 | . I Y<1!($G(DTOUT)) S LA7QUIT=1 Q | 
|---|
| 48 | . S LA7AA(LA7AA)=$G(LRAD) | 
|---|
| 49 | . D LRAN^LRWU3 | 
|---|
| 50 | . I LREND S LA7QUIT=1 Q | 
|---|
| 51 | . S LA7AA(LA7AA)=$G(LRAD)_"^"_$G(LRFAN)_"^"_$G(LRLAN) | 
|---|
| 52 | Q | 
|---|
| 53 | ; | 
|---|
| 54 | ; | 
|---|
| 55 | ASKPREV() ; Ask if build should exclude tests from building that have previously | 
|---|
| 56 | ; been removed from a manifest. Allows user to control if tests rebuild | 
|---|
| 57 | ; onto the same or different manifest. | 
|---|
| 58 | ; | 
|---|
| 59 | N DIR,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
| 60 | ; | 
|---|
| 61 | S DIR(0)="YO" | 
|---|
| 62 | S DIR("A")="Exclude previously removed tests from building" | 
|---|
| 63 | S DIR("B")="YES" | 
|---|
| 64 | S DIR("?",1)="Answer 'YES' if you do NOT want tests previously removed" | 
|---|
| 65 | S DIR("?",2)="from a manifest to be added to this manifest." | 
|---|
| 66 | S DIR("?",3)=" " | 
|---|
| 67 | S DIR("?",4)="Answer 'NO' if you WANT tests to be added to this manifest" | 
|---|
| 68 | S DIR("?",5)="that were previously removed from a manifest and are" | 
|---|
| 69 | S DIR("?")="otherwise eligible to be added." | 
|---|
| 70 | D ^DIR | 
|---|
| 71 | Q $S($D(DIRUT):-1,1:+Y) | 
|---|
| 72 | ; | 
|---|
| 73 | ; | 
|---|
| 74 | PREV(LA7UID,LA760) ; Determine if test previously removed from a manifest. | 
|---|
| 75 | ; Checks all manifests for accession/test combination. | 
|---|
| 76 | ; Call with LA7UID = accession's uid | 
|---|
| 77 | ;            LA760 = file #60 test ien | 
|---|
| 78 | ; | 
|---|
| 79 | ; Returns 0 = not previously removed from a manifest | 
|---|
| 80 | ;         1 = previously removed from a manifest | 
|---|
| 81 | ; | 
|---|
| 82 | ; Called by LA7SMB | 
|---|
| 83 | ; | 
|---|
| 84 | N LA7628,LA762801,LA7FLAG,LA7ROOT,LA7X | 
|---|
| 85 | ; | 
|---|
| 86 | S LA7FLAG=0 | 
|---|
| 87 | I '$L($G(LA7UID))!'(+$G(LA760)) Q LA7FLAG | 
|---|
| 88 | S LA7ROOT="^LAHM(62.8,""UID"",LA7UID)" | 
|---|
| 89 | F  S LA7ROOT=$Q(@LA7ROOT) Q:$QS(LA7ROOT,3)'=LA7UID  D  Q:LA7FLAG | 
|---|
| 90 | . ; Manifest and specimen ien | 
|---|
| 91 | . S LA7628=$QS(LA7ROOT,4),LA762801=$QS(LA7ROOT,5) | 
|---|
| 92 | . S LA7X=$G(^LAHM(62.8,LA7628,10,LA762801,0)) | 
|---|
| 93 | . ; Found previous test removal | 
|---|
| 94 | . I $P(LA7X,"^",2)=LA760,$P(LA7X,"^",8)=0 S LA7FLAG=1 | 
|---|
| 95 | Q LA7FLAG | 
|---|
| 96 | ; | 
|---|
| 97 | ; | 
|---|
| 98 | DOT(LA7CODE,LA7NCS,LA7UID,LA7628) ; Determine ordered tests | 
|---|
| 99 | ; | 
|---|
| 100 | ; Call with LA7CODE = Test code to look up | 
|---|
| 101 | ;            LA7NCS = name of coding system | 
|---|
| 102 | ;            LA7UID = accession's UID | 
|---|
| 103 | ;            LA7628 = ien of shipping manifest in #62.8 | 
|---|
| 104 | ; | 
|---|
| 105 | ; Returns     LA760 = ien of test entry in file #60 if found | 
|---|
| 106 | ; | 
|---|
| 107 | ; Given a test code, accession and a shipping manifest finds the | 
|---|
| 108 | ; file #60 test which is associated with the test code on the manifest. | 
|---|
| 109 | ; | 
|---|
| 110 | ; Called from LA7VIN4 to determine ordered test and update shipping event. | 
|---|
| 111 | N LA760,LA764,LA7I,LA7X,LA7Y | 
|---|
| 112 | ; | 
|---|
| 113 | S (LA760,LA764)=0 | 
|---|
| 114 | ; Quit if no code, UID or configuration passed. | 
|---|
| 115 | I $G(LA7CODE)=""!($G(LA7UID)="")!($G(LA7628)="") Q LA760 | 
|---|
| 116 | ; | 
|---|
| 117 | ; Using NLT codes | 
|---|
| 118 | I $G(LA7NCS)="99VA64" S LA764=+$O(^LAM("E",LA7CODE,0)) | 
|---|
| 119 | ; | 
|---|
| 120 | ; Try NLT in case other system is returning NLT codes but not saying so | 
|---|
| 121 | I 'LA764,$D(^LAM("E",LA7CODE)) S LA764=+$O(^LAM("E",LA7CODE,0)) | 
|---|
| 122 | ; | 
|---|
| 123 | S LA7I=0 | 
|---|
| 124 | F  S LA7I=$O(^LAHM(62.8,LA7628,10,"UID",LA7UID,LA7I)) Q:'LA7I  D  Q:LA760 | 
|---|
| 125 | . S LA7X=$G(^LAHM(62.8,LA7628,10,LA7I,0)) | 
|---|
| 126 | . S LA7Y=$P(LA7X,"^",2) | 
|---|
| 127 | . ; Found match on NLT code | 
|---|
| 128 | . I LA7Y,+$P(^LAB(60,LA7Y,64),"^")=LA764 S LA760=LA7Y Q | 
|---|
| 129 | . ; Found match on non-VA code | 
|---|
| 130 | . I LA7CODE=$P($G(^LAHM(62.8,LA7628,10,LA7I,5)),"^") S LA760=LA7Y | 
|---|
| 131 | ; | 
|---|
| 132 | Q LA760 | 
|---|