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

BMCADD3.m

Go to the documentation of this file.
  1. BMCADD3 ;IHS/ITSC/FCJ - ADD SNOMED CODES TO REFERRAL; [ 09/27/2006 1:31 PM ]
  1. ;;4.0;REFERRED CARE INFO SYSTEM;**8,9,12**;JAN 09, 2006;Build 101
  1. ;
  1. ; 4.0*8 NEW ROUTINE
  1. ; Routine will update the RCIS SNOMED field- V Referral file
  1. ;
  1. START ;
  1. K ^XTMP("BMCSNO",$J)
  1. NEW DDS,DIR
  1. D:'$D(BMCPARM) PARMCHK^BMC
  1. W @IOF
  1. ;BMC*4.0*9 TST FOR SNOMED CD IN REF OR VREF
  1. ;I (BMCMODE="M")!(BMCMODE="E") D Q:('BMCVREF)!(BMCRSTAT'="A")
  1. I (BMCMODE="M")!(BMCMODE="E") D Q:('BMCSCOD)!(BMCRSTAT'="A")
  1. .;I 'BMCVREF W !!?5,"This field is not editable because original referral does not have",!,"a SNOMED code." H 3 Q ;BMC*3.1*9
  1. .I 'BMCSCOD W !!?5,"This field is not editable because original referral does not have",!,"a SNOMED code." H 3 Q ;BMC*3.1*9
  1. .I BMCRSTAT'="A" W !!,"This field is not editable because referral status is not ACTIVE." H 3 Q
  1. D MAIN
  1. D EXIT
  1. Q
  1. ;
  1. MAIN ;
  1. S BMCQ=0
  1. I $G(BMCSCOD)>0 D Q:'+Y
  1. .W !,"SNOMED Clinical Term selected: ",BMCSCOD," ",BMCSTRM,!
  1. .I (BMCMODE="M")!(BMCMODE="E") W !,"Editing the SNOMED Code will automatically update the Referral.",!
  1. .S DIR(0)="Y",DIR("A")="Edit the SNOMED Referral Clinical Term",DIR("B")="N"
  1. .D ^DIR
  1. .K DIR
  1. S (BMCSNO,BMCSTRM,BMCSCOD)=""
  1. ;
  1. SNO ;REQUEST SNOMED
  1. W !
  1. S DIR(0)="F",DIR("A")="Enter the Referral Snomed Term"
  1. S:BMCMODE="R" DIR(0)="FO"
  1. S DIR("?")="Enter a Snomed code or partial name, example 'PEDIA' will list all PEDIACTRIC Referral Snomed codes, enter a '??' for a list of codes"
  1. S DIR("??")="^D SNOLST^BMCADD3"
  1. D ^DIR
  1. I BMCMODE="R",$D(DUOUT) Q
  1. I BMCMODE="R",$D(DIRUT) S BMCSCOD="@" D VREF^BMCAERR Q
  1. I $D(DUOUT),$G(BMCRREF) Q
  1. I $D(DUOUT) W !!,"Snomed Clinical Term required." G SNO
  1. K ^XTMP("BMCSNO",$J)
  1. S SNOLST=$NA(^XTMP("BMCSNO",$J)),BMCSNO=X
  1. ;S OUT=SNOLST,IN=BMCSNO_"^F^^EHR REFERRAL TYPE^^^P^1^^^" ;5/22/17 BMC*3.1*12 IHS/OIT/FCJ USE LOCAL SYS FOR LOOKUP
  1. S OUT=SNOLST,IN=BMCSNO_"^F^^EHR REFERRAL TYPE^^^P^1^^^1" ;5/22/17 BMC*3.1*12
  1. S X=$$SEARCH^BSTSAPI(OUT,IN)
  1. I +X=0 W !,"INVALID RESPONSE" G SNO ; ERROR
  1. ;DISPLAY
  1. K DIR
  1. S (CT,L)=0
  1. F S L=$O(^XTMP("BMCSNO",$J,L)) Q:L'?1N.N S CT=L
  1. ;
  1. F L=1:1:CT D Q:BMCQ G:$D(DUOUT) SNO
  1. .;W !?4,L,".",?8,^XTMP("BMCSNO",$J,L,"PRB","DSC"),?20,^XTMP("BMCSNO",$J,L,"PRB","TRM")
  1. .W !?4,L,".",?8,^XTMP("BMCSNO",$J,L,"CON"),?20,^XTMP("BMCSNO",$J,L,"FSN","TRM")
  1. .I L=CT D I 'BMCQ W !!,"Snomed Clinical Term required." G SNO
  1. ..W !
  1. ..S DIR(0)="L^1:"_L,DIR("A")="Enter the corresponding number" D ^DIR
  1. ..I +X>0 S BMCQ=1,BMCSNO=X
  1. .I L#20=0 D SEL
  1. ;I BMCSNO>0 S BMCSCOD=^XTMP("BMCSNO",$J,BMCSNO,"PRB","DSC"),BMCSTRM=^XTMP("BMCSNO",$J,BMCSNO,"PRB","TRM")
  1. I BMCSNO>0 S BMCSCOD=^XTMP("BMCSNO",$J,BMCSNO,"CON"),BMCSTRM=^XTMP("BMCSNO",$J,BMCSNO,"FSN","TRM")
  1. K DIR
  1. Q
  1. SEL ;SELECT
  1. W !
  1. S DIR(0)="LO^1:"_L
  1. S DIR("A")="Enter the corresponding number or return to continue"
  1. D ^DIR
  1. I $D(DUOUT) W !!,"SNOMED Clinical Term required."
  1. I X>0 S BMCQ=1,BMCSNO=+X
  1. W !
  1. K DIR
  1. Q
  1. ;
  1. SNOLST ;LIST THE SNOMED CODES
  1. NEW DIR
  1. S SNOLST=$NA(^XTMP("BMCSNO",$J))
  1. ;S X=$$SUBLST^BSTSAPI(SNOLST,"EHR REFERRAL TYPE"),L=0 ;5/22/17 BMC*3.1*12 IHS/OIT/FCJ USE LOCAL SYS FOR LOOKUP
  1. S X=$$SUBLST^BSTSAPI(SNOLST,"EHR REFERRAL TYPE^^1"),L=0 ;5/22/17 BMC*3.1*12
  1. ;5/22/17 BMC*4.0*12 IHS/OIT/FCJ ALPHA LIST OF CODES INSTEAD OF NUMERIC
  1. F S L=$O(^XTMP("BMCSNO",$J,L)) Q:L'?1N.N S ^XTMP("BMCSNO",$J,"B",$P(^XTMP("BMCSNO",$J,L),U,3),L)=""
  1. S L=0,L2=0 F S L=$O(^XTMP("BMCSNO",$J,"B",L)) Q:L="" D Q:$D(DUOUT)
  1. .S L1=0 F S L1=$O(^XTMP("BMCSNO",$J,"B",L,L1)) Q:L1'?1N.N D Q:$D(DUOUT)
  1. ..W !?5,$P(^XTMP("BMCSNO",$J,L1),U),?15,$P(^XTMP("BMCSNO",$J,L1),U,3) S L2=L2+1
  1. ..;W !?5,$P(^XTMP("BMCSNO",$J,L),U),?15,$P(^XTMP("BMCSNO",$J,L),U,3)
  1. ..I L2#20=0 W ! S DIR(0)="E",DIR("A")="Press return to continue or '^' to exit list" D ^DIR W @IOF
  1. ;5/22/17 BMC*4.0*12 IHS/OIT/FCJ END MODS
  1. Q
  1. ;
  1. EXIT ;EXIT PROGRAM
  1. K X,L,L1,L2,^XTMP("BMCSNO",$J)
  1. S BMCQ=0
  1. I BMCMODE="R",'$G(BMCSCOD) S BMCSCOD=$P($G(^BMCRTNRF(BMCRREF,13)),U,3) S:BMCSCOD BMCSTRM=$P($$CONC^BSTSAPI(BMCSCOD_"^^^1"),U,2)
  1. Q
  1. GETSNO ;EP FR BMCMOD AND BMCMODS;GET SNOMED TERM DESCRIPTION
  1. S BMCSCOD="",BMCSTRM="",BMCVREF=""
  1. S BMCVREF=$P($G(^BMCREF(BMCRIEN,13)),U,3)
  1. ;BMC*4.0*9 TEST FOR PCC V REF FIRST THEN REF FILE
  1. ;Q:'BMCVREF
  1. I 'BMCVREF D Q
  1. .S BMCSCOD=$P($G(^BMCREF(BMCRIEN,22,1,0)),U)
  1. .S BMCSTRM=$P($$CONC^BSTSAPI(BMCSCOD_"^^^1"),U,2)
  1. S BMCSCOD=$P(^AUPNVREF(BMCVREF,0),U)
  1. S BMCSTRM=$P($$CONC^BSTSAPI(BMCSCOD_"^^^1"),U,2)
  1. ;S BMCSTRM=$P($$DESC^BSTSAPI(BMCSCOD),U,2)
  1. Q