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

APSPFNC5.m

Go to the documentation of this file.
  1. APSPFNC5 ;IHS/MSC/PLS - Prescription Creation Support ;25-Feb-2014 16:15;DU
  1. ;;7.0;IHS PHARMACY MODIFICATIONS;**1011,1016,1018**;Sep 23, 2004;Build 21
  1. ;=================================================================
  1. ;IHS/MSC/MGH Added seach by type of pharmacy
  1. ;Return list of pharmacies
  1. PHMLSTSC(DATA,SFLG,ZIP,RAD,NAME,NFLG,CITY,STATE,PTYPE,ONEOF) ;
  1. N PLST,ZARY,ZC,CNT,IEN
  1. S SFLG=$G(SFLG) ;ZNCT
  1. S:'$L(SFLG) SFLG="A" ;Used when all pharmacy types is checked and no other search criteria
  1. S NFLG=+$G(NFLG) ;0-Starts with name;1-contains name;2-exact match
  1. S DATA=$NA(^TMP("APSPOPHM",$J))
  1. K @DATA
  1. S PLST=$NA(^TMP("APSPPLST",$J))
  1. K @PLST
  1. Q:'$L(SFLG)
  1. S CNT=0
  1. I SFLG["Z" D
  1. .Q:'$G(ZIP)
  1. .D GETZC^APSPFNC2(.ZARY,ZIP,RAD)
  1. .S ZC="",CNT=0 F S ZC=$O(ZARY(ZC)) Q:'$L(ZC) D
  1. ..S IEN=0 F S IEN=$O(^APSPOPHM("ZIP",ZC,IEN)) Q:'IEN S @PLST@(IEN)=1_U_ZARY(ZC)
  1. .S @PLST@(0)="ZIPCODE"
  1. I SFLG["N" D
  1. .N LP,RXNM,NM
  1. .Q:'$L(NAME)
  1. .S NM=$$UP^XLFSTR(NAME)
  1. .S LP=0
  1. .I $D(@PLST) D
  1. ..F S LP=$O(@PLST@(LP)) Q:'LP D
  1. ...Q:'@PLST@(LP)
  1. ...S RXNM=$$UP^XLFSTR($P(^APSPOPHM(LP,0),U,10))
  1. ...S $P(@PLST@(LP),U)=$S(NFLG=2:RXNM=NM,NFLG:RXNM[NM,1:$E(RXNM,1,$L(NM))=NM)
  1. .E D
  1. ..F S LP=$O(^APSPOPHM(LP)) Q:'LP D
  1. ...S RXNM=$$UP^XLFSTR($P(^APSPOPHM(LP,0),U))
  1. ...S:$S(NFLG=2:RXNM=NM,NFLG:RXNM[NM,1:$E(RXNM,1,$L(NM))=NM) $P(@PLST@(LP),U)=1
  1. ..S @PLST@(0)="NAME"
  1. I SFLG["C" D
  1. .N LP,CTY
  1. .;Q:'$L(CITY)
  1. .S CTY=$$UP^XLFSTR(CITY)
  1. .S LP=0
  1. .I $D(@PLST) D
  1. ..F S LP=$O(@PLST@(LP)) Q:'LP D
  1. ...Q:'@PLST@(LP)
  1. ...S $P(@PLST@(LP),U)=($$UP^XLFSTR($P($G(^APSPOPHM(LP,1)),U,4))=STATE)&($S($L(CTY):$E($$UP^XLFSTR($P($G(^APSPOPHM(LP,1)),U,3)),1,$L(CTY))=CTY,1:1))
  1. .E D
  1. ..F S LP=$O(^APSPOPHM("D",STATE,LP)) Q:'LP D
  1. ...S:($S($L(CTY):$E($$UP^XLFSTR($P($G(^APSPOPHM(LP,1)),U,3)),1,$L(CTY))=CTY,1:1)) $P(@PLST@(LP),U)=1
  1. ..S @PLST@(0)="CITY"
  1. ;IHS/MSC/MGH Patch 1016 Add selection for type of pharmacy
  1. I SFLG["T" D
  1. .N LP
  1. .S PTYPE=$G(PTYPE)
  1. .S LP=0
  1. .I $D(@PLST) D
  1. ..F S LP=$O(@PLST@(LP)) Q:'LP D
  1. ...Q:'@PLST@(LP)
  1. ...;Loop through type
  1. ...S $P(@PLST@(LP),U)=$$SPECID(LP,PTYPE,ONEOF)
  1. .E D
  1. ..F S LP=$O(^APSPOPHM(LP)) Q:'LP D
  1. ...S:$$SPECID(LP,PTYPE,ONEOF) $P(@PLST@(LP),U)=1
  1. ; Forces return of pharmacy list if the only criteria is All Pharmacy Types
  1. I SFLG["A" D
  1. .N LP
  1. .S LP=0
  1. .F S LP=$O(^APSPOPHM(LP)) Q:'LP D
  1. ..S $P(@PLST@(LP),U)=1
  1. ;IHS/MSC/PLS - 10/01/2013
  1. I (SFLG="Z"!(SFLG="C"))&($$GET^XPAR("ALL","APSP SS PHARMACY MAILORDER")) D
  1. .S PTYPE=1
  1. .S LP=0
  1. .F S LP=$O(^APSPOPHM(LP)) Q:'LP D
  1. ..S:$$SPECID(LP,PTYPE,ONEOF) $P(@PLST@(LP),U)="1^99"
  1. ;Finish by adding
  1. S LP=0 F S LP=$O(@PLST@(LP)) Q:'LP D
  1. .D:@PLST@(LP) ADDPHM^APSPFNC2(LP,$P(@PLST@(LP),U,2))
  1. Q
  1. SPECID(LP,VAL,ONEOF) ;EP-
  1. N I,J,X,Y,Z,DONE,LIST,VALUE
  1. S I=0,X=0,DONE=0,VALUE=0
  1. S J=$L(VAL,":")
  1. F I=1:1:J S LIST($P(VAL,":",I))="" S VALUE=VALUE+$P(VAL,":",I)
  1. S I=0
  1. F S I=$O(^APSPOPHM(LP,8,I)) Q:'+I!(DONE>0) D
  1. .S Z=$G(^APSPOPHM(LP,8,I,0))
  1. .I ONEOF D
  1. ..I $D(LIST(Z)) S DONE=1
  1. .E D
  1. ..S X=X+$G(^APSPOPHM(LP,8,I,0))
  1. S VAL=$S(ONEOF:DONE,1:$$AND^XUMF5AU(VALUE,X)=VALUE)
  1. Q VAL
  1. ;Q VAL=$S(ONEOF:$$OR^XUMF5AU(VAL,X),1:$$AND^XUMF5AU(VAL,X))
  1. ;.;S X=$S(ID=1:"MAIL ORDER",ID=2:"FAX",ID=8:"RETAIL",ID=16:"SPECIALTY",ID=32:"LONG-TERM CARE",ID=64:"24 THOUR",1:"")
  1. ;Return list of states
  1. GSTATES(DATA) ;EP
  1. N LP,ST
  1. F LP=1:1 S ST=$P($T(STATES+LP),";;",2) Q:'$L(ST) D
  1. .S DATA(LP)=ST
  1. Q
  1. STATES ;;List of states
  1. ;;AL^ALABAMA
  1. ;;AK^ALASKA
  1. ;;AZ^ARIZONA
  1. ;;AR^ARKANSAS
  1. ;;CA^CALIFORNIA
  1. ;;CO^COLORADO
  1. ;;CT^CONNECTICUT
  1. ;;DE^DELAWARE
  1. ;;FL^FLORIDA
  1. ;;GA^GEORGIA
  1. ;;GU^GUAM
  1. ;;HI^HAWAII
  1. ;;ID^IDAHO
  1. ;;IL^ILLINOIS
  1. ;;IN^INDIANA
  1. ;;IA^IOWA
  1. ;;KS^KANSAS
  1. ;;KY^KENTUCKY
  1. ;;LA^LOUISIANA
  1. ;;ME^MAINE
  1. ;;MP^MARIANAS PACIFIC
  1. ;;MD^MARYLAND
  1. ;;MA^MASSACHUSETTS
  1. ;;MI^MICHIGAN
  1. ;;MN^MINNESOTA
  1. ;;MS^MISSISSIPPI
  1. ;;MO^MISSOURI
  1. ;;MT^MONTANA
  1. ;;NE^NEBRASKA
  1. ;;NV^NEVADA
  1. ;;NH^NEW HAMPSHIRE
  1. ;;NJ^NEW JERSEY
  1. ;;NM^NEW MEXICO
  1. ;;NY^NEW YORK
  1. ;;NC^NORTH CAROLINA
  1. ;;ND^NORTH DAKOTA
  1. ;;OH^OHIO
  1. ;;OK^OKLAHOMA
  1. ;;OR^OREGON
  1. ;;PA^PENNSYLVANIA
  1. ;;RI^RHODE ISLAND
  1. ;;SC^SOUTH CAROLINA
  1. ;;SD^SOUTH DAKOTA
  1. ;;TN^TENNESSEE
  1. ;;TX^TEXAS
  1. ;;UT^UTAH
  1. ;;VT^VERMONT
  1. ;;VA^VIRGINIA
  1. ;;WA^WASHINGTON
  1. ;;WV^WEST VIRGINIA
  1. ;;WI^WISCONSIN
  1. ;;WY^WYOMING