You are on page 1of 69

ESSALUD

AFILIACION Y ATENCION DE PACIENTES




UNIVERSIDAD ALAS PERUANAS
FACULTAD DE INGENIERA Y ARQUTECTURA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA DE SISTEMAS E
INFORMTICA






PROYECTO DE BD EN ESSALUD


PRESENTADO POR
ALEXANDRA LOAYZA
JORGE HERRERA
ELIA TRANCA
BENJI J VILLARROEL



DOCENTE

JHONATAN ABAL MEJIA




LIMA - PER

2014


Contenido
ACERCA DE LA EMPRESA: ....................................................................................... 4
VISION ......................................................................................................................... 4
MISION ......................................................................................................................... 4
ORGANIGRAMA .......................................................................................................... 5
DESCRIPCION DEL CASO: ........................................................................................ 6
PROCESOS ................................................................................................................. 6
DIAGRAMA FISICO ................................................................................................... 12
DIAGRAMA LOGICO ................................................................................................. 12
DIAGRAMA CONCEPTUAL ...................................................................................... 12
CODIFICACIN ......................................................................................................... 12
TABLAS ..................................................................................................................... 12
PRIMARY KEY ......................................................................................................................... 17
FOREING KEY ......................................................................................................................... 19
UNIQUES................................................................................................................................... 22
CHECK....................................................................................................................................... 23
SEQUENCE .............................................................................................................................. 24
PROCEDIMINETOS ................................................................................................................ 27
INSERTAR ................................................................................................................................ 27
UPDATE ..................................................................................................................... 44
DELETE ..................................................................................................................... 54
VISTAS....................................................................................................................... 59
FUNCIONES .............................................................................................................. 63
CURSORES ............................................................................................................... 64







EMPRESA : ESSALUD
PROCESO : AFILIACION Y ATENCION DE
PACIENTES
AREA : GERENCIA DE ASEGURAMIENTO


ACERCA DE LA EMPRESA:

El Seguro Social de Salud, EsSalud, es un organismo pblico descentralizado, con personera
jurdica de derecho pblico interno, adscrito al Sector Trabajo y Promocin Social.

Tiene por finalidad dar cobertura a los asegurados y sus derechohabientes, a travs del
otorgamiento de prestaciones de prevencin, promocin, recuperacin, rehabilitacin,
prestaciones econmicas, y prestaciones sociales que corresponden al rgimen contributivo de
la Seguridad Social en Salud, as como otros seguros de riesgos humanos.

VISION
Ser una institucin que lidere el proceso de universalizacin de la seguridad social, en el
marco de la poltica de inclusin social del Estado.

MISION
Somos una institucin de seguridad social de salud que persigue el bienestar de los
asegurados y su acceso oportuno a prestaciones de salud, econmicas y sociales, integrales y
de calidad, mediante una gestin transparente y eficiente.

PRINCIPIOS

Solidaridad
Cada cual debe aportar al sistema segn su capacidad y recibir segn su necesidad.

Universalidad
Todas las personas deben participar de los beneficios de la seguridad social, sin distincin ni
limitacin alguna.

Igualdad
La seguridad social ampara igualitariamente a todas las personas. Se prohbe toda forma de
discriminacin.

Unidad
Todas las prestaciones deben ser suministradas por una sola entidad o por un sistema de
entidades entrelazadas orgnicamente y vinculadas a un sistema nico de financiamiento.

Integralidad
El sistema cubre en forma plena y oportuna las contingencias a las que estn expuestas las
personas.



ORGANIGRAMA



AREA DE GERENCIA CENTRAL DEASEGURAMIENTO






Gerencia Central de
Aseguramiento
Afiliacin
Atencin





DESCRIPCION DEL CASO:

El seguro EsSalud desea agilizar y mejorar el proceso de afiliacin y atencin de los pacientes
del Seguro Social del Per (EsSalud), para eso sus directivos ha visto conveniente optimizar la
forma en la que almacenan su data, por esa razn han dispuesto la construccin e
implementacin de una base de datos para dicho proceso.
EsSalud puede afiliar dos tipos de personas: Empleados independientes y empresariales.


PROCESOS

ATENCIN
El proceso de Atencin al Asegurado comienza al recepcionar la Emergencia, se verifica la
afiliacin con todos los datos correctos.
Luego es dirigido con una enfermera quien interrogara sobre los sntomas que el afiliado
padezca, posteriormente es atendido por el Medico, quien emitir el diagnostico final en la
historia clnica.
Si en caso hubiera testigos, se interroga y se rellena la ficha de emergencia con los datos
brindados.

AFILIACIN
El proceso de Afiliacin comienza cuando una persona solicita a la Recepcionista de Essalud
los requisitos para poder afiliarse, esta pregunta a qu tipo de afiliacin desea unirse
(independiente o empresarial), posteriormente se pasa a completar los campos (segn tipo de
afiliacin), se registran los datos, se brinda la informacin necesaria.
En caso de que la persona que desea afiliarse tenga cnyuge o hijos se tomaran los datos y se
har el respectivo registro de los familiares.

DESAFILIACIN

El proceso de desafiliacin comienza cuando el afiliado a nuestro seguro solicita dar de baja al
conyugue, por lo cual la recepcionista en primer lugar solicita el motivo de la desafiliacin,
luego de eso se brinda la informacin adecuada, y se prosigue a elegir en el sistema el motivo
por el cual se est dando de baja, se completa el formulario y termina registrando la baja con
los datos completos.

PROCESO DE AFILIACION Y ATENCION DEL PACIENTE:

Proceso de Atencin
Proceso de Afiliacin:

Proceso de Desafilia
DIAGRAMA FISICO

REFERENCIA CARPETA ESSALUD


DIAGRAMA LOGICO

REFERENCIA CARPETA ESSALUD


DIAGRAMA CONCEPTUAL

REFERENCIA CARPETA ESSALUD


CODIFICACIN

TABLAS
CREATE TABLE AFILIADO
(
ID_AFI INTEGER NOT NULL ,
ID_TIPO_OPE INTEGER NOT NULL ,
ID_TIPO_DOC INTEGER NOT NULL ,
COD_AFI VARCHAR2(20) NOT NULL ,
ID_MOD_COB INTEGER NOT NULL ,
AP_PATERNO_AFILIADO VARCHAR2(20) NOT NULL ,
AP_MATERNO_AFILIADO VARCHAR2(20) NOT NULL ,
NOM_AFI VARCHAR2(20) NOT NULL ,
TELF_AFI char(9) NULL ,
FEC_NAC_AFI DATE NOT NULL ,
FEC_INSCRIP_AFI DATE DEFAULT SYSDATE,
SEXO_AFI CHAR(1) NOT NULL ,
EMAIL_AFI VARCHAR2(30) NULL ,
CELULAR_AFI CHAR(9) NULL ,
ID_TIPO INTEGER NOT NULL ,
ID_EC INTEGER NULL ,
ID_VINCULO INTEGER NOT NULL ,
NUM_DOCUMENTO_IDENT CHAR(8) NOT NULL ,
ID_EMP INTEGER NOT NULL ,
ID_DERECH INTEGER NOT NULL ,
ID_DISTR INTEGER NOT NULL ,
ID__EMP_PRESTADORA INTEGER NOT NULL ,
ID_PROVI INTEGER NOT NULL ,
ID_ZONA INTEGER NOT NULL ,
ID_DEP INTEGER NOT NULL ,
ID_TIPO_IDENTIDAD INTEGER NOT NULL ,
ESTADO_AFILIADO VARCHAR2(15) DEFAULT 1 ,
ID_HI INTEGER NOT NULL ,
TIPO_MOTIVO_BAJA_DH VARCHAR2(15) NULL ,
TIPO_MOTIVO_BAJA_DH VARCHAR2(15) NULL
);


CREATE TABLE Afiliar_Derecho_Habiente
(
ID_DERECH INTEGER NOT NULL ,
AP_MATERNO_DA VARCHAR2(20) NOT NULL ,
AP_PATERNO_DA VARCHAR2(20) NOT NULL ,
NOM_DA VARCHAR2(20) NOT NULL ,
INIC_VIN_DA DATE NOT NULL ,
COD_EST_CIVI VARCHAR2(20) NOT NULL ,
SEXO_DH VARCHAR2(20) NOT NULL,
ID_VINCULO INTEGER NOT NULL ,
ID_EC INTEGER NOT NULL ,
COD_DH VARCHAR(20) NOT NULL
);

CREATE TABLE Afiliar_Hijo_Incapacitado
(
ID_HI INTEGER NOT NULL ,
COD_HI VARCHAR2(20) NOT NULL ,
AP_PATERNO_HI VARCHAR2(30) NOT NULL ,
AP_MATERNO_HI VARCHAR2(30) NOT NULL ,
NOM_HI VARCHAR(40) NOT NULL ,
NUM_RESOL_HI CHAR(9) NOT NULL ,
FEC_NAC_HI DATE NOT NULL ,
SEXO_HI CHAR(1) NOT NULL ,
ID_TIPO_DOC INTEGER NOT NULL ,
DIRECCION VARCHAR2(100) NOT NULL
);

CREATE TABLE Bitacora
(
Cod_Usuario VARCHAR2(20) NOT NULL ,
AP_PATERNO_Usu VARCHAR2(20) NULL ,
AP_MATERNO_Usu VARCHAR2(20) NULL ,
NOM_Usu VARCHAR2(20) NULL ,
TRANSA VARCHAR2(20) NULL ,
FECHA DATE NULL ,
USUARIO VARCHAR2(20) NULL ,
ESTACION VARCHAR2(20) NULL
);


CREATE TABLE Centro_Asistencial
(
ID_CENT_ASIST INTEGER NOT NULL ,
NOM_CENT_ASIST VARCHAR2(20) NULL
);

CREATE TABLE Departamento
(
ID_DEP INTEGER NOT NULL ,
ID_PAIS INTEGER NOT NULL ,
NOM_DEP VARCHAR2(20) NOT NULL
);

CREATE TABLE Distrito
(
ID_DISTR INTEGER NOT NULL ,
ID_PROVI INTEGER NOT NULL ,
NOM_DISTR VARCHAR2(35) NOT NULL
);

CREATE TABLE Empleado
(
COD_EMPLEADO VARCHAR2(10) NOT NULL ,
AP_PATERNO_EMPLEADO VARCHAR2(20) NOT NULL ,
AP_MATERNO_EMPLEADO VARCHAR2(20) NOT NULL ,
NOM_EMPLEADO VARCHAR2(20) NULL ,
Fecha_Nac_EMPLEADO DATE NOT NULL ,
ID_EMPLEADO INTEGER NOT NULL ,
ARE_ESSALUD_EMPLEADO VARCHAR2(18) NOT NULL ,
DEPART_ESSALUD_EMPLEADO VARCHAR2(18) NOT NULL
);

CREATE TABLE Empresa
(
ID_EMP INTEGER NOT NULL ,
NOM_EMP VARCHAR2(35) NOT NULL ,
TELF_EMP CHAR(9) NULL ,
WEB_EMP VARCHAR(38) NULL ,
EMAIL_EMP VARCHAR2(35) NULL ,
ID_TIPO_EMP INTEGER NOT NULL ,
RUC_EMP CHAR(20) NOT NULL ,
RAZON_SOCIAL_EMP VARCHAR2(100) NULL
);


CREATE TABLE Empresa_Prestadora
(
ID__EMP_PRESTADORA INTEGER NOT NULL ,
NOM_EMP_PRESTADORA VARCHAR2(28) NOT NULL
);


CREATE TABLE Estado_Civil
(
ID_EC INTEGER NOT NULL ,
NOM_EC VARCHAR2(10) NOT NULL
);


CREATE TABLE Historia_Clinica
(
ID_HC INTEGER NOT NULL ,
ID_CENT_ASIST INTEGER NOT NULL ,
ID_CIE10 INTEGER NOT NULL ,
COD_HC VARCHAR2(15) NOT NULL ,
ID_TES VARCHAR2(20) NOT NULL ,
ID_TIP_EMERGENCIA INTEGER NOT NULL ,
ENFERMEDAD_ACTUAL_HC VARCHAR2(600) NULL ,
ANTECEDENTES_PERSONAL_HC VARCHAR2(500) NULL ,
ANTECEDENTES_FAMILIARES_HC VARCHAR2(500) NULL ,
REVISION_ANAMNESICA_HC VARCHAR2(500) NULL ,
EXAMEN_CLINICO_HC VARCHAR2(500) NULL ,
DIAGNOSTICO_HC VARCHAR2(500) NULL ,
TRATAMIENTO_INDICACION_HC VARCHAR2(500) NULL ,
FECH_HC DATE DEFAULT SYSDATE ,
ID_USUARIO INTEGER NOT NULL
);

CREATE TABLE Modalidad_Cobertura
(
ID_MOD_COB INTEGER NOT NULL ,
NOM_MOD_COB VARCHAR2(35) NOT NULL
);


CREATE TABLE Paciente
(
ID_PACIENTE INTEGER NOT NULL ,
ID_AFI INTEGER NOT NULL ,
ID_CENT_ASIST INTEGER NOT NULL ,
ID_DERECH INTEGER NOT NULL ,
ESTADO_PACIENTE VARCHAR2(15) DEFAULT 1 ,
COD_PACIENTE varCHAR(10) NOT NULL ,
ID_HI INTEGER NOT NULL ,
ID_HC INTEGER NOT NULL ,
FECH_REG_PAC DATE DEFAULT SYSDATE
);

CREATE TABLE Paises
(
ID_PAIS INTEGER NOT NULL ,
NOM_PAIS VARCHAR2(20) NOT NULL
);


CREATE TABLE Provincia
(
ID_PROVI INTEGER NOT NULL ,
ID_DEP INTEGER NOT NULL ,
NOM_PROVINCIA VARCHAR2(35) NOT NULL
);

CREATE TABLE Roles
(
ID_Rol INTEGER NOT NULL ,
NOM_Rol VARCHAR2(20) NULL
);

CREATE TABLE Testigo
(
ID_TES VARCHAR2(20) NOT NULL ,
AP_PATERNO_TEST VARCHAR2(20) NULL ,
NOM_TEST VARCHAR2(20) NULL ,
AP_MATERNO_TEST VARCHAR2(20) NULL ,
ID_TIPO_DOC INTEGER NOT NULL ,
NUM_DOC_TEST CHAR(8) NULL ,
ID_VINCULO INTEGER NOT NULL ,
DIRECCION_TEST VARCHAR2(500) NULL ,
TELEFON_TEST VARCHAR2(9) NULL
);


CREATE TABLE TIpo_Afiliacion
(
ID_TIPO INTEGER NOT NULL ,
NOM_TIPO VARCHAR2(30) NOT NULL
);

CREATE TABLE TIPO_CIE10
(
ID_CIE10 INTEGER NOT NULL ,
NOM_CIE10 VARCHAR2(20) NULL
);

CREATE TABLE Tipo_Docum_Identidad
(
ID_TIPO_DOC INTEGER NOT NULL ,
NOM_TIPO_DOC VARCHAR2(25) NOT NULL
);

CREATE TABLE TIPO_EMERGENCIA
(
ID_TIP_EMERGENCIA INTEGER NOT NULL ,
NOM_TIP_EMERGENCIA VARCHAR2(25) NULL
);


CREATE TABLE Tipo_Empresa
(
ID_TIPO_EMP INTEGER NOT NULL ,
NOM_TIPO_EMP VARCHAR2(25) NOT NULL
);

CREATE TABLE Tipo_Identidad_Con_Essalud
(
ID_TIPO_IDENTIDAD INTEGER NOT NULL ,
NOM_TIPO_IDENTIDAD VARCHAR2(25) NOT NULL
);


CREATE TABLE Tipo_Operacion
(
ID_TIPO_OPE INTEGER NOT NULL ,
NOM_TIPO_OPE VARCHAR2(7) NOT NULL
);

CREATE TABLE Tipo_Zona
(
ID_ZONA INTEGER NOT NULL ,
NOM_ZONA VARCHAR2(20) NOT NULL
);

CREATE TABLE Usuario
(
ID_USUARIO INTEGER NOT NULL ,
ID_Rol INTEGER NOT NULL ,
USUARIO VARCHAR2(20) NULL ,
PASS_USUARIO VARCHAR2(20) NULL ,
ID_EMPLEADO INTEGER NOT NULL
);

CREATE TABLE Vinculo
(
ID_VINCULO INTEGER NOT NULL ,
NOM_VINCULO VARCHAR2(25) NOT NULL
);
PRIMARY KEY


ALTER TABLE AFILIADO ADD CONSTRAINT PK_AFILIADO PRIMARY KEY
(ID_AFI);

ALTER TABLE Afiliar_Derecho_Habiente ADD CONSTRAINT
PK_Afiliar_Derecho_Habiente PRIMARY KEY (ID_DERECH);

ALTER TABLE Afiliar_Hijo_Incapacitado ADD CONSTRAINT
PK_Afiliar_Hijo_Incapacitado PRIMARY KEY (ID_HI);

ALTER TABLE Centro_Asistencial ADD CONSTRAINT PK_Centro_Asistencial
PRIMARY KEY (ID_CENT_ASIST);

ALTER TABLE Departamento ADD CONSTRAINT PK_Departamento
PRIMARY KEY (ID_DEP);

ALTER TABLE Distrito ADD CONSTRAINT PK_Distrito PRIMARY KEY
(ID_DISTR);

ALTER TABLE Empleado ADD CONSTRAINT PK_Empleado PRIMARY KEY
(ID_EMPLEADO);

ALTER TABLE Empresa ADD CONSTRAINT PK_Empresa PRIMARY KEY
(ID_EMP);

ALTER TABLE Empresa_Prestadora ADD CONSTRAINT
PK_Empresa_Prestadora PRIMARY KEY (ID__EMP_PRESTADORA)

ALTER TABLE Estado_Civil ADD CONSTRAINT PK_Estado_Civil PRIMARY
KEY (ID_EC);

ALTER TABLE Historia_Clinica ADD CONSTRAINT PK_Historia_Clinica
PRIMARY KEY (ID_HC);

ALTER TABLE Modalidad_Cobertura ADD CONSTRAINT
PK_Modalidad_Cobertura PRIMARY KEY (ID_MOD_COB);

ALTER TABLE Paciente ADD CONSTRAINT PK_Paciente PRIMARY KEY
(ID_PACIENTE);

ALTER TABLE Paises ADD CONSTRAINT PK_Paises PRIMARY KEY
(ID_PAIS);

ALTER TABLE Provincia ADD CONSTRAINT PK_Provincia PRIMARY KEY
(ID_PROVI);

ALTER TABLE Roles ADD CONSTRAINT PK_Roles PRIMARY KEY (ID_Rol);

ALTER TABLE Testigo ADD CONSTRAINT PK_Testigo PRIMARY KEY
(ID_TES);

ALTER TABLE TIpo_Afiliacion ADD CONSTRAINT PK_TIpo_Afiliacion
PRIMARY KEY (ID_TIPO);

ALTER TABLE TIPO_CIE10 ADD CONSTRAINT PK_TIPO_CIE10 PRIMARY
KEY (ID_CIE10);

ALTER TABLE Tipo_Docum_Identidad ADD CONSTRAINT
PK_Tipo_Docum_Identidad PRIMARY KEY (ID_TIPO_DOC);

ALTER TABLE TIPO_EMERGENCIA ADD CONSTRAINT
PK_TIPO_EMERGENCIA PRIMARY KEY (ID_TIP_EMERGENCIA);

ALTER TABLE Tipo_Empresa ADD CONSTRAINT PK_Tipo_Empresa
PRIMARY KEY (ID_TIPO_EMP);

ALTER TABLE Tipo_Identidad_Con_Essalud ADD CONSTRAINT
PK_Tipo_Identidad_Con_Essalud PRIMARY KEY (ID_TIPO_IDENTIDAD);

ALTER TABLE Tipo_Operacion ADD CONSTRAINT PK_Tipo_Operacion
PRIMARY KEY (ID_TIPO_OPE);

ALTER TABLE Tipo_Zona ADD CONSTRAINT PK_Tipo_Zona PRIMARY KEY
(ID_ZONA);

ALTER TABLE Usuario ADD CONSTRAINT PK_Usuario PRIMARY KEY
(ID_USUARIO);

ALTER TABLE Vinculo ADD CONSTRAINT PK_Vinculo PRIMARY KEY
(ID_VINCULO);


FOREING KEY
ALTER TABLE AFILIADO ADD (CONSTRAINT R_EmpPrest_Afilia FOREIGN
KEY (ID__EMP_PRESTADORA) REFERENCES
Empresa_Prestadora(ID__EMP_PRESTADORA));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_TipIdentConEssalud_Afillia
FOREIGN KEY (ID_TIPO_IDENTIDAD) REFERENCES
Tipo_Identidad_Con_Essalud(ID_TIPO_IDENTIDAD));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_TipAfilia_Afilia FOREIGN
KEY (ID_TIPO) REFERENCES TIpo_Afiliacion(ID_TIPO));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_95 FOREIGN KEY (ID_EC)
REFERENCES Estado_Civil(ID_EC) ON DELETE SET NULL);
ALTER TABLE AFILIADO ADD (CONSTRAINT R_Vin_Afilia FOREIGN KEY
(ID_VINCULO) REFERENCES Vinculo(ID_VINCULO));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_Empresa_Afilia FOREIGN
KEY (ID_EMP) REFERENCES Empresa(ID_EMP));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_HI_Afilia FOREIGN KEY
(ID_HI) REFERENCES Afiliar_Hijo_Incapacitado(ID_HI));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_DerecHabient_Afilia
FOREIGN KEY (ID_DERECH) REFERENCES
Afiliar_Derecho_Habiente(ID_DERECH));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_Dist_Afilia FOREIGN KEY
(ID_DISTR) REFERENCES Distrito(ID_DISTR));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_Prov_Afilia FOREIGN KEY
(ID_PROVI) REFERENCES Provincia(ID_PROVI));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_Depart_Afilia FOREIGN
KEY (ID_DEP) REFERENCES Departamento(ID_DEP));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_TipDocIdent_Afilia
FOREIGN KEY (ID_TIPO_DOC) REFERENCES
Tipo_Docum_Identidad(ID_TIPO_DOC));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_ModCobert_Afilia FOREIGN
KEY (ID_MOD_COB) REFERENCES Modalidad_Cobertura(ID_MOD_COB));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_TipOpe_Afilia FOREIGN
KEY (ID_TIPO_OPE) REFERENCES Tipo_Operacion(ID_TIPO_OPE));
ALTER TABLE AFILIADO ADD (CONSTRAINT R_TipZona_Afilia FOREIGN
KEY (ID_ZONA) REFERENCES Tipo_Zona(ID_ZONA));


ALTER TABLE Afiliar_Derecho_Habiente ADD (CONSTRAINT
R_VINCULO_DERCHO_HABIENTE FOREIGN KEY (ID_VINCULO)
REFERENCES Vinculo(ID_VINCULO));
ALTER TABLE Afiliar_Derecho_Habiente ADD (CONSTRAINT
R_EstCiv_DercHabient FOREIGN KEY (ID_EC) REFERENCES
Estado_Civil(ID_EC));
ALTER TABLE Afiliar_Hijo_Incapacitado ADD (CONSTRAINT
R_DocIdent_Afilia FOREIGN KEY (ID_TIPO_DOC) REFERENCES
Tipo_Docum_Identidad(ID_TIPO_DOC));


ALTER TABLE Departamento ADD (CONSTRAINT R_Pais_Depart FOREIGN
KEY (ID_PAIS) REFERENCES Paises(ID_PAIS));

ALTER TABLE Distrito ADD (CONSTRAINT R_Prov_Distri FOREIGN KEY
(ID_PROVI) REFERENCES Provincia(ID_PROVI));

ALTER TABLE Empresa ADD (CONSTRAINT R_TipEmpresa_Empresa
FOREIGN KEY (ID_TIPO_EMP) REFERENCES
Tipo_Empresa(ID_TIPO_EMP));


ALTER TABLE Historia_Clinica ADD (CONSTRAINT R_Test_HC FOREIGN
KEY (ID_TES) REFERENCES Testigo(ID_TES));
ALTER TABLE Historia_Clinica ADD (CONSTRAINT R_TipEmerg_HC
FOREIGN KEY (ID_TIP_EMERGENCIA) REFERENCES
TIPO_EMERGENCIA(ID_TIP_EMERGENCIA));
ALTER TABLE Historia_Clinica ADD (CONSTRAINT R_Usu_HC FOREIGN
KEY (ID_USUARIO) REFERENCES Usuario(ID_USUARIO));
ALTER TABLE Historia_Clinica ADD (CONSTRAINT R_CentAsist_HC
FOREIGN KEY (ID_CENT_ASIST) REFERENCES
Centro_Asistencial(ID_CENT_ASIST));
ALTER TABLE Historia_Clinica ADD (CONSTRAINT R_TipCIE10_HC
FOREIGN KEY (ID_CIE10) REFERENCES TIPO_CIE10(ID_CIE10));


ALTER TABLE Paciente ADD (CONSTRAINT R_Afilia_Pac FOREIGN KEY
(ID_AFI) REFERENCES AFILIADO(ID_AFI));
ALTER TABLE Paciente ADD (CONSTRAINT R_CentAsist_Pac FOREIGN
KEY (ID_CENT_ASIST) REFERENCES
Centro_Asistencial(ID_CENT_ASIST));
ALTER TABLE Paciente ADD (CONSTRAINT R_DH_PAC FOREIGN KEY
(ID_DERECH) REFERENCES Afiliar_Derecho_Habiente(ID_DERECH));
ALTER TABLE Paciente ADD (CONSTRAINT R_HI_PAC FOREIGN KEY
(ID_HI) REFERENCES Afiliar_Hijo_Incapacitado(ID_HI));
ALTER TABLE Paciente ADD (CONSTRAINT R_HC_PAC FOREIGN KEY
(ID_HC) REFERENCES Historia_Clinica(ID_HC));


ALTER TABLE Provincia ADD (CONSTRAINT R_Depart_Prov FOREIGN KEY
(ID_DEP) REFERENCES Departamento(ID_DEP));


ALTER TABLE Testigo ADD (CONSTRAINT R_TipDocIdent_Test FOREIGN
KEY (ID_TIPO_DOC) REFERENCES Tipo_Docum_Identidad(ID_TIPO_DOC));
ALTER TABLE Testigo ADD (CONSTRAINT R_Vin_Test FOREIGN KEY
(ID_VINCULO) REFERENCES Vinculo(ID_VINCULO));


ALTER TABLE Usuario ADD (CONSTRAINT R_Rol_User FOREIGN KEY
(ID_Rol) REFERENCES Roles(ID_Rol));
ALTER TABLE Usuario ADD (CONSTRAINT R_Empleado_User FOREIGN
KEY (ID_EMPLEADO) REFERENCES Empleado(ID_EMPLEADO));


UNIQUES

ALTER TABLE AFILIADO ADD CONSTRAINT UK_EMAIL UNIQUE
(EMAIL_AFI);
ALTER TABLE AFILIADO ADD CONSTRAINT UK_DNIA UNIQUE
(NUM_DOCUMENTO_IDENT);

ALTER TABLE Afiliar_Hijo_Incapacitado ADD CONSTRAINT
UK_COD_HI UNIQUE(COD_HI);

ALTER TABLE Centro_Asistencial ADD CONSTRAINT UK_Centro_Asistencial
UNIQUE(NOM_CENT_ASIST);

ALTER TABLE Departamento ADD CONSTRAINT UK_dept UNIQUE
(NOM_DEP);

ALTER TABLE Empleado ADD CONSTRAINT UK_COD_EMPLEADO
UNIQUE(COD_EMPLEADO);

ALTER TABLE Empresa ADD CONSTRAINT UK_RUC_EMP UNIQUE
(RUC_EMP);
ALTER TABLE Empresa ADD CONSTRAINT UK_RAZON_SOCIAL_EMP
UNIQUE(RAZON_SOCIAL_EMP);
ALTER TABLE Empresa ADD CONSTRAINT UK_NOMBRE_EMP UNIQUE
(NOM_EMP);

ALTER TABLE Empresa_Prestadora ADD CONSTRAINT
UK_NOM_EMP_PRESTADORA UNIQUE(NOM_EMP_PRESTADORA);

ALTER TABLE Estado_Civil ADD CONSTRAINT UK_NOM_EC UNIQUE
(NOM_EC);

ALTER TABLE Historia_Clinica ADD CONSTRAINT UK_COD_HC
UNIQUE(COD_HC);
ALTER TABLE Modalidad_Cobertura ADD CONSTRAINT
UK_NOM_MOD_COB UNIQUE(NOM_MOD_COB)

ALTER TABLE Paciente ADD CONSTRAINT UK_COD_PACIENTE
UNIQUE(COD_PACIENTE);

ALTER TABLE Paises ADD CONSTRAINT UK_NOM_PAIS UNIQUE
(NOM_PAIS);

ALTER TABLE Provincia ADD CONSTRAINT UK_NOM_PROVINCIA
UNIQUE(NOM_PROVINCIA);

ALTER TABLE Roles ADD CONSTRAINT UK_NOM_Rol UNIQUE(NOM_Rol);

ALTER TABLE Testigo ADD CONSTRAINT UK_NUM_DOC_TESTl
UNIQUE(NUM_DOC_TEST);

ALTER TABLE TIpo_Afiliacion ADD CONSTRAINT UK_NOM_TIPO
UNIQUE(NOM_TIPO);

ALTER TABLE TIPO_CIE10 ADD CONSTRAINT UK_NOM_CIE10
UNIQUE(NOM_CIE10);

ALTER TABLE Tipo_Docum_Identidad ADD CONSTRAINT
UK_NOM_TIPO_DOC UNIQUE(NOM_TIPO_DOC);

ALTER TABLE TIPO_EMERGENCIA ADD CONSTRAINT
UK_NOM_TIP_EMERGENCIA UNIQUE(NOM_TIP_EMERGENCIA);

ALTER TABLE Tipo_Identidad_Con_Essalud ADD CONSTRAINT
UK_NOM_TIPO_IDENTIDAD UNIQUE(NOM_TIPO_IDENTIDAD);

ALTER TABLE Tipo_Operacion ADD CONSTRAINT UK_NOM_TIPO_OPE
UNIQUE(NOM_TIPO_OPE);

ALTER TABLE Usuario ADD CONSTRAINT UK_Usuario UNIQUE(USUARIO);

ALTER TABLE Vinculo ADD CONSTRAINT UK_NOM_VINCULO
UNIQUE(NOM_VINCULO);
CHECK
ALTER TABLE Centro_Asistencial ADD CONSTRAINT
CK_NOM_CENT_ASIST CHECK(NOM_CENT_ASIST
=UPPER(NOM_CENT_ASIST));

ALTER TABLE Departamento ADD CONSTRAINT CK_NOM_DEP
CHECK(NOM_DEP =UPPER(NOM_DEP));
ALTER TABLE Paises ADD CONSTRAINT CK_NOM_PAIS
CHECK(NOM_PAIS = UPPER(NOM_PAIS));

ALTER TABLE Provincia ADD CONSTRAINT CK_NOM_PROVINCIA
CHECK(NOM_PROVINCIA = UPPER(NOM_PROVINCIA ));

ALTER TABLE Roles ADD CONSTRAINT CK_NOM_Rol CHECK(NOM_Rol
= UPPER(NOM_Rol));

ALTER TABLE Paciente ADD CONSTRAINT CK_Paciente
CHECK(ESTADO_PACIENTE IN('VIVO','MUERTO'));

ALTER TABLE TIPO_EMERGENCIA ADD CONSTRAINT
CK_NOM_TIP_EMERGENCIA CHECK(NOM_TIP_EMERGENCIA
IN('RIESGO HUMANOS','ACCIDENTE','RIESGOS EXTERNOS'));


SEQUENCE

CREATE SEQUENCE SQ_AFILIADO
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999
NOCYCLE;

CREATE SEQUENCE SQ_Afiliar_Derecho_Habiente
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999
NOCYCLE;

CREATE SEQUENCE SQ_Afiliar_Hijo_Incapacitado
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999
NOCYCLE;

CREATE SEQUENCE SQ_Centro_Asistencial
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999
NOCYCLE;

CREATE SEQUENCE SQ_Departamento
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 25
NOCYCLE;

CREATE SEQUENCE SQ_Distrito
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999
NOCYCLE;

CREATE SEQUENCE SQ_Empleado
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999
NOCYCLE;

CREATE SEQUENCE SQ_Empresa
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999
NOCYCLE;

CREATE SEQUENCE SQ_Empresa_Prestadora
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 999
NOCYCLE;

CREATE SEQUENCE SQ_Estado_Civil
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 5
NOCYCLE;

CREATE SEQUENCE SQ_Historia_Clinica
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999
NOCYCLE;

CREATE SEQUENCE SQ_Modalidad_Cobertura
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 10
NOCYCLE;

CREATE SEQUENCE SQ_Paciente
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999999
NOCYCLE;

CREATE SEQUENCE SQ_Paises
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 199
NOCYCLE;

CREATE SEQUENCE SQ_Provincia
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 196
NOCYCLE;

CREATE SEQUENCE SQ_Roles
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 100
NOCYCLE;

CREATE SEQUENCE SQ_Testigo
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 99999
NOCYCLE;

CREATE SEQUENCE SQ_Tipo_Afiliacion
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 10
NOCYCLE;

CREATE SEQUENCE SQ_Tipo_TIPO_CIE10
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 23
NOCYCLE;

CREATE SEQUENCE SQ_Tipo_Docum_Identidad
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 23
NOCYCLE;

CREATE SEQUENCE SQ_Tipo_Emergencia
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 6
NOCYCLE;

CREATE SEQUENCE SQ_Tipo_Empresa
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 50
NOCYCLE;

CREATE SEQUENCE SQ_Tipo_Identidad_Con_Essalud
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 15
NOCYCLE;

CREATE SEQUENCE SQ_Tipo_Operacion
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 3
NOCYCLE;

CREATE SEQUENCE SQ_Tipo_Zona
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 560
NOCYCLE;

CREATE SEQUENCE SQ_Usuario
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 50
NOCYCLE;

CREATE SEQUENCE SQ_Vinculo
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 10
NOCYCLE;

PROCEDIMINETOS
INSERTAR
create or replace procedure usp_insetar_AFILIADO(
ID_TIPO_OPE in int,
ID_TIPO_DOC in int,
COD_AFI in varchar2,
ID_MOD_COB in int ,
AP_PATERNO_AFILIADO in varchar2 ,
AP_MATERNO_AFILIADO in varchar2 ,
NOM_AFI in varchar2,
TELF_AFI in char ,
FEC_NAC_AFI in date,
SEXO_AFI in char,
EMAIL_AFI in varchar2 ,
CELULAR_AFI in char ,
ID_TIPO in int ,
ID_EC in int,
ID_VINCULO in int ,
NUM_DOCUMENTO_IDENT in char,
ID_EMP in int ,
ID_DERECH in int ,
ID_DISTR in int ,
ID__EMP_PRESTADORA in int,
ID_PROVI in int ,
ID_ZONA in int ,
ID_DEP in int,
ID_TIPO_IDENTIDAD in int ,
ESTADO_AFILIADO in int ,
ID_HI in int ,
TIPO_MOTIVO_BAJA_DH in varchar2
)
AS
BEGIN
insert into AFILIADO(ID_AFI,ID_TIPO_OPE,
ID_TIPO_DOC,
COD_AFI ,
ID_MOD_COB,
AP_PATERNO_AFILIADO,
AP_MATERNO_AFILIADO ,
NOM_AFI,
TELF_AFI,
FEC_NAC_AFI ,
SEXO_AFI ,
EMAIL_AFI ,
CELULAR_AFI ,
ID_TIPO ,
ID_EC ,
ID_VINCULO,
NUM_DOCUMENTO_IDENT,
ID_EMP,
ID_DERECH ,
ID_DISTR ,
ID__EMP_PRESTADORA ,
ID_PROVI,
ID_ZONA ,
ID_DEP ,
ID_TIPO_IDENTIDAD ,
ESTADO_AFILIADO ,
ID_HI,
TIPO_MOTIVO_BAJA_DH)values
(SQ_AFILIADO.nextVal,ID_TIPO_OPE,ID_TIPO_DOC,
COD_AFI ,
ID_MOD_COB ,
AP_PATERNO_AFILIADO,
AP_MATERNO_AFILIADO ,
NOM_AFI,
TELF_AFI,
FEC_NAC_AFI ,
SEXO_AFI ,
EMAIL_AFI ,
CELULAR_AFI ,
ID_TIPO ,
ID_EC ,
ID_VINCULO,
NUM_DOCUMENTO_IDENT,
ID_EMP,
ID_DERECH ,
ID_DISTR ,
ID__EMP_PRESTADORA ,
ID_PROVI,
ID_ZONA ,
ID_DEP ,
ID_TIPO_IDENTIDAD ,
ESTADO_AFILIADO ,
ID_HI ,
TIPO_MOTIVO_BAJA_DH );
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_AFILIADO;

begin
usp_insetar_AFILIADO('c0001','Carnes','pollo,pescado,cerdo,res');
end;


create or replace procedure usp_insetar_derecho_habiente(
AP_MATERNO_DA in VARCHAR2 ,
AP_PATERNO_DA in VARCHAR2,
NOM_DA in VARCHAR2,
INIC_VIN_DA in DATE ,
COD_EST_CIVI in VARCHAR2 ,
ID_VINCULO in INT ,
ID_EC in INT,
COD_DH in VARCHAR2

)
AS
BEGIN
insert into afiliar_derecho_habiente(ID_DERECH,
AP_MATERNO_DA ,
AP_PATERNO_DA,
NOM_DA,
INIC_VIN_DA ,
COD_EST_CIVI,
ID_VINCULO,
ID_EC ,
COD_DH )values (SQ_Afiliar_Derecho_Habiente.nextVal,AP_MATERNO_DA ,
AP_PATERNO_DA,
NOM_DA,
INIC_VIN_DA ,
COD_EST_CIVI,
ID_VINCULO,
ID_EC ,
COD_DH );
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_derecho_habiente;



create or replace procedure usp_insetar_Hijo_Incapacitado(
COD_HI in VARCHAR2 ,
AP_PATERNO_HI in VARCHAR2 ,
AP_MATERNO_HI in VARCHAR2,
NOM_HI in VARCHAR,
NUM_RESOL_HI in CHAR,
FEC_NAC_HI in DATE ,
SEXO_HI in CHAR,
ID_TIPO_DOC in INT,
DIRECCION in VARCHAR2

)
AS
BEGIN
insert into afiliar_Hijo_Incapacitado(ID_HI,
COD_HI,
AP_PATERNO_HI ,
AP_MATERNO_HI,
NOM_HI ,
NUM_RESOL_HI,
FEC_NAC_HI ,
SEXO_HI ,
ID_TIPO_DOC ,
DIRECCION )values (SQ_Afiliar_Hijo_Incapacitado.nextVal,COD_HI,
AP_PATERNO_HI ,
AP_MATERNO_HI,
NOM_HI ,
NUM_RESOL_HI,
FEC_NAC_HI ,
SEXO_HI ,
ID_TIPO_DOC ,
DIRECCION);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Hijo_Incapacitado;



create or replace procedure usp_insetar_Centro_Asistencial(
NOM_CENT_ASIST in VARCHAR2
)
AS
BEGIN
insert into Centro_Asistencial(ID_CENT_ASIST,
NOM_CENT_ASIST) values
(SQ_Centro_Asistencial.nextVal,NOM_CENT_ASIST);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Centro_Asistencial;

begin
usp_insetar_Centro_Asistencial('SQ_Centro_Asistencial.nextval','ESSALUD
CHOSICA');
end;


create or replace procedure usp_insetar_Departamento(
ID_PAIS in INT ,
NOM_DEP in VARCHAR2 )
AS
BEGIN
insert into Departamento(ID_DEP,
ID_PAIS ,
NOM_DEP) values (SQ_Departamento.nextVal,ID_PAIS ,
NOM_DEP);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Departamento;

begin
usp_insetar_Distrito('1','LIMA');
end ;
begin
usp_insetar_Distrito('1','TRUJILLO');
end ;
begin
usp_insetar_Distrito('1','AREQUIPA');
end ;
begin
usp_insetar_Distrito('1','CUSCO');
end ;

create or replace procedure usp_insetar_Distrito(ID_PROVI in INT ,NOM_DISTR in
VARCHAR2 )
AS
BEGIN
insert into Distrito(ID_DISTR,
ID_PROVI,
NOM_DISTR) values (SQ_Distrito.nextVal,ID_PROVI,
NOM_DISTR);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Distrito;

begin
usp_insetar_Distrito('1','CHOSICA');
end ;
begin
usp_insetar_Distrito('1','VITARTE');
end ;
begin
usp_insetar_Distrito('1','GRAU');
end ;
begin
usp_insetar_Distrito('1','SANTA ANITA');
end ;

create or replace procedure usp_insetar_Empleado(
COD_EMPLEADO in VARCHAR2,
AP_PATERNO_EMPLEADO in VARCHAR2,
AP_MATERNO_EMPLEADO in VARCHAR2,
NOM_EMPLEADO in VARCHAR2 ,
Fecha_Nac_EMPLEADO in DATE ,
ARE_ESSALUD_EMPLEADO in VARCHAR2 ,
DEPART_ESSALUD_EMPLEADO in VARCHAR2
)
AS
BEGIN
insert into Empleado(ID_EMPLEADO,
COD_EMPLEADO,
AP_PATERNO_EMPLEADO,
AP_MATERNO_EMPLEADO,
NOM_EMPLEADO,
Fecha_Nac_EMPLEADO,
ARE_ESSALUD_EMPLEADO,
DEPART_ESSALUD_EMPLEADO) values
(SQ_Empleado.nextVal,COD_EMPLEADO,
AP_PATERNO_EMPLEADO,
AP_MATERNO_EMPLEADO,
NOM_EMPLEADO,
Fecha_Nac_EMPLEADO,
ARE_ESSALUD_EMPLEADO,
DEPART_ESSALUD_EMPLEADO);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Empleado;

create or replace procedure usp_insetar_Empresa(
NOM_EMP in VARCHAR2 ,
TELF_EMP in CHAR,
WEB_EMP in VARCHAR,
EMAIL_EMP in VARCHAR2,
ID_TIPO_EMP in INT,
RUC_EMP in CHAR,
RAZON_SOCIAL_EMP in VARCHAR2
)
AS
BEGIN
insert into Empresa(ID_EMP,
NOM_EMP,
TELF_EMP,
WEB_EMP,
EMAIL_EMP,
ID_TIPO_EMP,
RUC_EMP,
RAZON_SOCIAL_EMP) values (SQ_Empleado.nextVal,NOM_EMP,
TELF_EMP,
WEB_EMP,
EMAIL_EMP,
ID_TIPO_EMP,
RUC_EMP,
RAZON_SOCIAL_EMP);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Empresa;


create or replace procedure
usp_insetar_Empresa_Prestadora(NOM_EMP_PRESTADORA in VARCHAR2)
AS
BEGIN
insert into Empresa_Prestadora(ID__EMP_PRESTADORA,
NOM_EMP_PRESTADORA
) values (SQ_Empresa_Prestadora.nextVal,
NOM_EMP_PRESTADORA);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Empresa_Prestadora;

begin
usp_insetar_Empresa_Prestadora('SOAT');
end ;
begin
usp_insetar_Empresa_Prestadora('RIMAC');
end ;
begin
usp_insetar_Empresa_Prestadora('PACIFICO');
end ;
begin
usp_insetar_Empresa_Prestadora('LA POSITIVA');
end ;

create or replace procedure usp_insetar_Estado_Civil(NOM_EC in VARCHAR2)
AS
BEGIN
insert into Estado_Civil(ID_EC, NOM_EC) values
(SQ_Estado_Civil.nextVal,NOM_EC);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Estado_Civil;

begin
usp_insetar_Estado_Civil('SOLTERO');
end ;
begin
usp_insetar_Estado_Civil('CASADO');
end ;
begin
usp_insetar_Estado_Civil('VIUDO');
end ;
begin
usp_insetar_Estado_Civil('DIVORCIADO');
end ;

create or replace procedure usp_insetar_Historia_Clinica(
ID_HC in INT,
ID_CENT_ASIST in INT,
ID_CIE10 in INT,
COD_HC in VARCHAR2,
ID_TES in VARCHAR2,
ID_TIP_EMERGENCIA in INT,
ENFERMEDAD_ACTUAL_HC in VARCHAR2 ,
ANTECEDENTES_PERSONAL_HC in VARCHAR2,
ANTECEDENTES_FAMILIARES_HC in VARCHAR2,
REVISION_ANAMNESICA_HC in VARCHAR2 ,
EXAMEN_CLINICO_HC in VARCHAR2,
DIAGNOSTICO_HC in VARCHAR2,
TRATAMIENTO_INDICACION_HC in VARCHAR2,
FECH_HC in DATE,
ID_USUARIO in INT

)
AS
BEGIN
insert into Historia_Clinica(ID_HC,
ID_CENT_ASIST ,
ID_CIE10,
COD_HC ,
ID_TES ,
ID_TIP_EMERGENCIA ,
ENFERMEDAD_ACTUAL_HC ,
ANTECEDENTES_PERSONAL_HC,
ANTECEDENTES_FAMILIARES_HC,
REVISION_ANAMNESICA_HC,
EXAMEN_CLINICO_HC,
DIAGNOSTICO_HC,
TRATAMIENTO_INDICACION_HC,
FECH_HC ,
ID_USUARIO
) values (SQ_Historia_Clinica.nextVal,
ID_CENT_ASIST ,
ID_CIE10,
COD_HC ,
ID_TES ,
ID_TIP_EMERGENCIA ,
ENFERMEDAD_ACTUAL_HC ,
ANTECEDENTES_PERSONAL_HC,
ANTECEDENTES_FAMILIARES_HC,
REVISION_ANAMNESICA_HC,
EXAMEN_CLINICO_HC,
DIAGNOSTICO_HC ,
TRATAMIENTO_INDICACION_HC,
FECH_HC ,
ID_USUARIO);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Historia_Clinica;

begin
usp_insetar_mod_cob('LIMA');
end ;

create or replace procedure usp_insetar_mod_cob(nom in varchar2)
AS
BEGIN
insert into modalidad_cobertura(id_mod_cob,nom_mod_cob) values
(SQ_Modalidad_Cobertura.nextVal,nom);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_mod_cob;

begin
usp_insetar_mod_cob('REGULAR');
end ;
begin
usp_insetar_mod_cob('AGRARIO');
end ;
begin
usp_insetar_mod_cob('POTESTATIVO');
end ;

create or replace procedure usp_insetar_Paciente(
ID_AFI in INT ,
ID_CENT_ASIST in INT ,
ID_DERECH in INT ,
ESTADO_PACIENTE in VARCHAR2 ,
COD_PACIENTE in varCHAR ,
ID_HI in INT ,
ID_HC in INT ,
FECH_REG_PAC in DATE
)
AS
BEGIN
insert into Paciente(ID_PACIENTE,
ID_AFI,
ID_CENT_ASIST,
ID_DERECH,
ESTADO_PACIENTE,
COD_PACIENTE,
ID_HI,
ID_HC,
FECH_REG_PAC
) values (SQ_Paciente.nextVal,
ID_AFI,
ID_CENT_ASIST,
ID_DERECH,
ESTADO_PACIENTE,
COD_PACIENTE,
ID_HI,
ID_HC,
FECH_REG_PAC);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Paciente;
begin
usp_insetar_paises('LIMA');
end ;

Create or replace procedure usp_insetar_paises(nom in varchar2)
AS
BEGIN
insert into paises(id_pais,nom_pais) values (SQ_Paises.nextVal,nom);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_paises;

begin
usp_insetar_paises('PERU');
end ;
begin
usp_insetar_paises('ESPAA');
end ;
begin
usp_insetar_paises('ESTADOS UNIDOS');
end ;
begin
usp_insetar_paises('CHILE');
end ;


create or replace procedure usp_insetar_provincia(id_dep in int,nom in varchar2)
AS
BEGIN
insert into provincia(id_provi,id_dep,nom_provincia) values
(SQ_Provincia.nextVal,id_dep,nom);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_provincia;


begin
usp_insetar_provincia('1','LIMA');
end ;
begin
usp_insetar_provincia('2','HUAROCHIRI');
end ;
begin
usp_insetar_provincia('3','CAETE');
end ;
begin
usp_insetar_provincia('4','CANTA');
end ;
begin
usp_insetar_provincia('5','OYON');
end ;
begin
usp_insetar_provincia('6','YAUYOS');
end ;

create or replace procedure usp_insetar_Roles(NOM_Rol in VARCHAR2)
AS
BEGIN
insert into Roles(ID_Rol,NOM_Rol) values (SQ_Roles.nextVal,NOM_Rol);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Roles;

begin
usp_insetar_Roles('MEDICO');
end ;
begin
usp_insetar_Roles('ENFERMERA');
end ;
begin
usp_insetar_Roles('RECEPCIONISTA');
end ;
begin
usp_insetar_Roles('SEGURIDAD');
end ;

create or replace procedure usp_insetar_Testigo(ID_TES VARCHAR2 ,
AP_PATERNO_TEST in VARCHAR2,
NOM_TEST in VARCHAR2 ,
AP_MATERNO_TEST in VARCHAR2,
ID_TIPO_DOC in INT ,
NUM_DOC_TEST in CHAR,
ID_VINCULO in INT ,
DIRECCION_TEST in VARCHAR2 ,
TELEFON_TEST in VARCHAR2
)
AS
BEGIN
insert into Testigo(ID_TES ,
AP_PATERNO_TEST,
NOM_TEST ,
AP_MATERNO_TEST,
ID_TIPO_DOC,
NUM_DOC_TEST,
ID_VINCULO,
DIRECCION_TEST ,
TELEFON_TEST) values (SQ_Testigo.nextVal,AP_PATERNO_TEST,
NOM_TEST ,
AP_MATERNO_TEST,
ID_TIPO_DOC,
NUM_DOC_TEST,
ID_VINCULO,
DIRECCION_TEST ,
TELEFON_TEST);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Testigo;

create or replace procedure usp_insetar_TIpo_Afiliacion(NOM_TIPO in VARCHAR2)
AS
BEGIN
insert into TIpo_Afiliacion(ID_TIPO,NOM_TIPO ) values
(SQ_Tipo_Afiliacion.nextVal,NOM_TIPO );
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_TIpo_Afiliacion;
SELECT * FROM TIpo_AfiliacioN
begin
usp_insetar_TIpo_Afiliacion('EMPRESARIAL');
end ;
begin
usp_insetar_TIpo_Afiliacion('INDEPENDIENTE');
end ;



create or replace procedure usp_insetar_TIPO_CIE10(NOM_CIE10 in VARCHAR2)
AS
BEGIN
insert into TIPO_CIE10(ID_CIE10,NOM_CIE10 ) values
(SQ_Tipo_TIPO_CIE10.nextVal,NOM_CIE10 );
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_TIPO_CIE10;
SELECT * FROM TIPO_CIE10
begin
usp_insetar_TIPO_CIE10('infecciosas');
end ;
begin
usp_insetar_TIPO_CIE10('Neoplasias');
end ;
begin
usp_insetar_TIPO_CIE10('sangre y Organos');
end ;
begin
usp_insetar_TIPO_CIE10('metablicas');
end ;
begin
usp_insetar_TIPO_CIE10('mentales');
end ;
begin
usp_insetar_TIPO_CIE10('sistema nervioso');
end ;
begin
usp_insetar_TIPO_CIE10('sistema circulatorio');
end ;
begin
usp_insetar_TIPO_CIE10('morbilidad');
end ;



create or replace procedure usp_insetar_Tipo_Docum_Ident(NOM_TIPO_DOC in
VARCHAR2)
AS
BEGIN
insert into Tipo_Docum_Identidad(ID_TIPO_DOC,NOM_TIPO_DOC) values
(SQ_Tipo_Docum_Identidad.nextVal,NOM_TIPO_DOC);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Tipo_Docum_Ident;

begin
usp_insetar_Tipo_Docum_Ident('DNI');
end ;
begin
usp_insetar_Tipo_Docum_Ident('PASAPORTE');
end ;
begin
usp_insetar_Tipo_Docum_Ident('CARNET DE EXTRANJERIA');
end ;
begin
usp_insetar_Tipo_Docum_Ident('OTROS');
end ;


create or replace procedure
usp_insetar_TIPO_EMERGENCIA(NOM_TIP_EMERGENCIA in VARCHAR2)
AS
BEGIN
insert into TIPO_EMERGENCIA(ID_TIP_EMERGENCIA,NOM_TIP_EMERGENCIA)
values (SQ_Tipo_Emergencia.nextVal,NOM_TIP_EMERGENCIA);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_TIPO_EMERGENCIA;

begin
usp_insetar_TIPO_EMERGENCIA('RIESGO HUMANOS');
end ;
begin
usp_insetar_TIPO_EMERGENCIA('RIESGOS EXTERNOS');
end ;
begin
usp_insetar_TIPO_EMERGENCIA('ACCIDENTE');
end ;

create or replace procedure usp_insetar_Tipo_Empresa(NOM_TIPO_EMP in
VARCHAR2)
AS
BEGIN
insert into Tipo_Empresa(ID_TIPO_EMP,NOM_TIPO_EMP) values
(SQ_Tipo_Empresa.nextVal,NOM_TIPO_EMP);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Tipo_Empresa;

begin
usp_insetar_Tipo_Empresa('Grande Empresa');
end ;
begin
usp_insetar_Tipo_Empresa('Mediana Empresa');
end ;
begin
usp_insetar_Tipo_Empresa('Pequea Empresa');
end ;
begin
usp_insetar_Tipo_Empresa('Privada');
end ;
begin
usp_insetar_Tipo_Empresa('Publica');
end ;


create or replace procedure usp_insetar_Tipo_Ident_Essalud(NOM_TIPO_IDENTIDAD
in VARCHAR2)
AS
BEGIN
insert into
Tipo_Identidad_Con_Essalud(ID_TIPO_IDENTIDAD,NOM_TIPO_IDENTIDAD) values
(SQ_Tipo_Identidad_Con_Essalud.nextVal,NOM_TIPO_IDENTIDAD);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Tipo_Ident_Essalud;

begin
usp_insetar_Tipo_Ident_Essalud('Operador Externo');
end ;
begin
usp_insetar_Tipo_Ident_Essalud('Prestador Asistencial');
end ;
begin
usp_insetar_Tipo_Ident_Essalud('Aseguradora');
end ;


create or replace procedure usp_insetar_Tipo_Operacion(NOM_TIPO_OPE in
VARCHAR2)
AS
BEGIN
insert into Tipo_Operacion(ID_TIPO_OPE,NOM_TIPO_OPE) values
(SQ_Tipo_Operacion.nextVal,NOM_TIPO_OPE);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Tipo_Operacion;

begin
usp_insetar_Tipo_Operacion('Alta');
end ;
begin
usp_insetar_Tipo_Operacion('Baja');
end ;
begin
usp_insetar_Tipo_Operacion('Cambios');
end ;

create or replace procedure usp_insetar_Tipo_Zona(NOM_ZONA in VARCHAR2)
AS
BEGIN
insert into Tipo_Zona(ID_ZONA,NOM_ZONA) values
(SQ_Tipo_Zona.nextVal,NOM_ZONA);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Tipo_Zona;

create or replace procedure usp_insetar_Usuarios(
ID_Rol in INT,
USUARIO in VARCHAR2,
PASS_USUARIO in VARCHAR2,
ID_EMPLEADO in INT
)
AS
BEGIN
insert into Usuario(ID_USUARIO,
ID_Rol,
USUARIO,
PASS_USUARIO,
ID_EMPLEADO) values (SQ_Usuario.nextVal,ID_Rol,
USUARIO,
PASS_USUARIO,
ID_EMPLEADO);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Usuarios;
begin
usp_insetar_vinculo('');
end ;

create or replace procedure usp_insetar_Vinculo(NOM_VINCULO in VARCHAR2)
AS
BEGIN
insert into Vinculo(ID_VINCULO,NOM_VINCULO) values
(SQ_Vinculo.nextVal,NOM_VINCULO);
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END usp_insetar_Vinculo;

begin
usp_insetar_vinculo('Conyuge');
end ;
begin
usp_insetar_vinculo('Hijos');
end ;
begin
usp_insetar_vinculo('Conviviente');
end ;

UPDATE

create or replace procedure usp_update_afiliado(
id_tipo_ope in int,
id_tipo_doc in int,
cod_afi in varchar2,
id_mod_cob in int ,
ap_paterno_afiliado in varchar2 ,
ap_materno_afiliado in varchar2 ,
nom_afi in varchar2,
telf_afi in char ,
fec_nac_afi in date,
sexo_afi in char,
email_afi in varchar2 ,
celular_afi in char ,
id_tipo in int ,
id_ec in int,
id_vinculo in int ,
num_documento_ident in char,
id_emp in int ,
id_derech in int ,
id_distr in int ,
id__emp_prestadora in int,
id_provi in int ,
id_zona in int ,
id_dep in int,
id_tipo_identidad in int ,
estado_afiliado in int ,
id_hi in int ,
tipo_motivo_baja_dh in varchar2,
id_afi in int
)
as
begin
update afiliado set id_tipo_ope=id_tipo_ope,
id_tipo_doc=id_tipo_doc,
cod_afi=cod_afi ,
id_mod_cob =id_mod_cob,
ap_paterno_afiliado=ap_paterno_afiliado,
ap_materno_afiliado=ap_materno_afiliado,
nom_afi=nom_afi,
telf_afi=telf_afi,
fec_nac_afi=fec_nac_afi,
sexo_afi=sexo_afi ,
email_afi=email_afi ,
celular_afi=celular_afi ,
id_tipo=id_tipo,
id_ec=id_ec ,
id_vinculo=id_vinculo,
num_documento_ident=num_documento_ident,
id_emp=id_emp,
id_derech=id_derech ,
id_distr=id_distr ,
id__emp_prestadora=id__emp_prestadora ,
id_provi=id_provi,
id_zona=id_zona ,
id_dep=id_dep ,
id_tipo_identidad=id_tipo_identidad ,
estado_afiliado=estado_afiliado ,
id_hi=id_hi,
tipo_motivo_baja_dh=tipo_motivo_baja_dh where id_afi =id_afi ;
commit;
exception
when others then
rollback;
end usp_update_afiliado;


create or replace procedure usp_update_derecho_habiente(
ap_materno_da in varchar2 ,
ap_paterno_da in varchar2,
nom_da in varchar2,
inic_vin_da in date ,
cod_est_civi in varchar2 ,
id_vinculo in int ,
id_ec in int,
cod_dh in varchar2,
id_derech in int
)
as
begin
update afiliar_derecho_habiente set
ap_materno_da=ap_materno_da ,
ap_paterno_da=ap_paterno_da,
nom_da=nom_da,
inic_vin_da=inic_vin_da,
cod_est_civi=cod_est_civi ,
id_vinculo=id_vinculo,
id_ec=id_ec,
cod_dh=cod_dh
where id_derech =id_derech ;
commit;
exception
when others then
rollback;
end usp_update_derecho_habiente;

create or replace procedure usp_update_hijo_incapacitado(
cod_hi in varchar2 ,
ap_paterno_hi in varchar2 ,
ap_materno_hi in varchar2,
nom_hi in varchar,
num_resol_hi in char,
fec_nac_hi in date ,
sexo_hi in char,
id_tipo_doc in int,
direccion in varchar2,
id_hi in int
)
as
begin
update afiliar_hijo_incapacitado set
cod_hi=cod_hi ,
ap_paterno_hi=ap_paterno_hi ,
ap_materno_hi=ap_materno_hi,
nom_hi=nom_hi,
num_resol_hi=num_resol_hi,
fec_nac_hi=fec_nac_hi,
sexo_hi=sexo_hi,
id_tipo_doc=id_tipo_doc,
direccion=direccion
where id_hi =id_hi ;
commit;
exception
when others then
rollback;
end usp_update_hijo_incapacitado;


create or replace procedure usp_update_centro_asistencial(
nom_cent_asist in varchar2,
id_cent_asist in int
)
as
begin
update centro_asistencial set
nom_cent_asist=nom_cent_asist
where id_cent_asist = id_cent_asist ;
commit;
exception
when others then
rollback;
end usp_update_centro_asistencial;

create or replace procedure usp_update_departamento(
nom_dep in varchar2,
id_pais in int
)
as
begin
update departamento set
nom_dep =nom_dep
where id_pais = id_pais ;
commit;
exception
when others then
rollback;
end usp_update_departamento;

create or replace procedure usp_update_distrito(
nom_distr in varchar2,
id_provi in int
)
as
begin
update distrito set
nom_distr =nom_distr
where id_provi = id_provi;
commit;
exception
when others then
rollback;
end usp_update_distrito;

create or replace procedure usp_update_empleado(
cod_empleado in varchar2,
ap_paterno_empleado in varchar2,
ap_materno_empleado in varchar2,
nom_empleado in varchar2 ,
fecha_nac_empleado in date ,
are_essalud_empleado in varchar2 ,
depart_essalud_empleado in varchar2 ,
id_empleado in int
)
as
begin
update empleado set
cod_empleado=cod_empleado,
ap_paterno_empleado=ap_paterno_empleado,
ap_materno_empleado=ap_materno_empleado,
nom_empleado=nom_empleado,
fecha_nac_empleado=fecha_nac_empleado,
are_essalud_empleado=are_essalud_empleado,
depart_essalud_empleado=depart_essalud_empleado
where id_empleado = id_empleado;
commit;
exception
when others then
rollback;
end usp_update_empleado;

create or replace procedure usp_update_empresa(
nom_emp in varchar2 ,
telf_emp in char,
web_emp in varchar,
email_emp in varchar2,
id_tipo_emp in int,
ruc_emp in char,
razon_social_emp in varchar2,
id_emp in int
)
as
begin
update empresa set
nom_emp=nom_emp,
telf_emp=telf_emp,
web_emp=web_emp,
email_emp=email_emp,
id_tipo_emp=id_tipo_emp,
ruc_emp=ruc_emp,
razon_social_emp=razon_social_emp
where id_emp = id_emp;
commit;
exception
when others then
rollback;
end usp_update_empresa;

create or replace procedure usp_update_empresa_prestadora(
nom_emp_prestadora in varchar2,
id__emp_prestadora in int
)
as
begin
update empresa_prestadora set
nom_emp_prestadora=nom_emp_prestadora
where id__emp_prestadora = id__emp_prestadora;
commit;
exception
when others then
rollback;
end usp_update_empresa_prestadora;

create or replace procedure usp_update_estado_civil(
nom_ec in varchar2,
id_ec in int
)
as
begin
update estado_civil set
nom_ec =nom_ec
where id_ec = id_ec;
commit;
exception
when others then
rollback;
end usp_update_estado_civil;

create or replace procedure usp_update_historia_clinica(
id_cent_asist in int,
id_cie10 in int,
cod_hc in varchar2,
id_tes in varchar2,
id_tip_emergencia in int,
enfermedad_actual_hc in varchar2 ,
antecedentes_personal_hc in varchar2,
antecedentes_familiares_hc in varchar2,
revision_anamnesica_hc in varchar2 ,
examen_clinico_hc in varchar2,
diagnostico_hc in varchar2,
tratamiento_indicacion_hc in varchar2,
fech_hc in date,
id_usuario in int,
id_hc in int
)
as
begin
update historia_clinica set
id_cent_asist =id_cent_asist,
id_cie10=id_cie10,
cod_hc=cod_hc,
id_tes=id_tes,
id_tip_emergencia=id_tip_emergencia,
enfermedad_actual_hc=enfermedad_actual_hc,
antecedentes_personal_hc=antecedentes_personal_hc,
antecedentes_familiares_hc=antecedentes_familiares_hc,
revision_anamnesica_hc=revision_anamnesica_hc,
examen_clinico_hc=examen_clinico_hc,
diagnostico_hc=diagnostico_hc,
tratamiento_indicacion_hc=tratamiento_indicacion_hc,
fech_hc=fech_hc,
id_usuario=id_usuario
where id_hc = id_hc;
commit;
exception
when others then
rollback;
end usp_update_historia_clinica;

create or replace procedure usp_update_mod_cob(
nom_mod_cob in varchar2,
id_mod_cob in int
)
as
begin
update modalidad_cobertura set
nom_mod_cob =nom_mod_cob
where id_mod_cob = id_mod_cob;
commit;
exception
when others then
rollback;
end usp_update_mod_cob;

create or replace procedure usp_update_paciente(
id_afi in int ,
id_cent_asist in int ,
id_derech in int ,
estado_paciente in varchar2 ,
cod_paciente in varchar ,
id_hi in int ,
id_hc in int ,
fech_reg_pac in date,
id_paciente in int

)
as
begin
update paciente set
id_afi=id_afi,
id_cent_asist=id_cent_asist,
id_derech =id_derech,
estado_paciente=estado_paciente ,
cod_paciente=cod_paciente,
id_hi=id_hi,
id_hc=id_hc ,
fech_reg_pac=fech_reg_pac
where id_paciente = id_paciente;
commit;
exception
when others then
rollback;
end usp_update_paciente;

create or replace procedure usp_update_paises(
nom_pais in varchar2,
id_pais in int
)
as
begin
update paises set
nom_pais=nom_pais
where id_pais = id_pais;
commit;
exception
when others then
rollback;
end usp_update_paises;

create or replace procedure usp_update_provincia(
id_dep in int,
nom_provincia in varchar2,
id_provi in int
)
as
begin
update provincia set
id_dep=id_dep,
nom_provincia=nom_provincia
where id_provi = id_provi;
commit;
exception
when others then
rollback;
end usp_update_provincia;

create or replace procedure usp_update_roles(
nom_rol in varchar2,
id_rol in int
)
as
begin
update roles set
nom_rol =nom_rol
where id_rol = id_rol;
commit;
exception
when others then
rollback;
end usp_update_roles;

create or replace procedure usp_update_testigo(
ap_paterno_test in varchar2,
nom_test in varchar2 ,
ap_materno_test in varchar2,
id_tipo_doc in int ,
num_doc_test in char,
id_vinculo in int ,
direccion_test in varchar2 ,
telefon_test in varchar2,
id_tes in int
)
as
begin
update testigo set
ap_paterno_test=ap_paterno_test,
nom_test=nom_test ,
ap_materno_test=ap_materno_test,
id_tipo_doc=id_tipo_doc,
num_doc_test=num_doc_test,
id_vinculo=id_vinculo,
direccion_test=direccion_test ,
telefon_test=telefon_test
where id_tes = id_tes ;
commit;
exception
when others then
rollback;
end usp_update_testigo;

create or replace procedure usp_update_tipo_afiliacion(
nom_tipo in varchar2,
id_tipo in int
)
as
begin
update tipo_afiliacion set
nom_tipo=nom_tipo
where id_tipo =id_tipo ;
commit;
exception
when others then
rollback;
end usp_update_tipo_afiliacion;

create or replace procedure usp_update_tipo_cie10(
nom_cie10 in varchar2,
id_cie10 in int
)
as
begin
update tipo_cie10 set
nom_cie10 =nom_cie10
where id_cie10 =id_cie10 ;
commit;
exception
when others then
rollback;
end usp_update_tipo_cie10;

create or replace procedure usp_update_tipo_docum_ident(
nom_tipo_doc in varchar2,
id_tipo_doc in int
)
as
begin
update tipo_docum_identidad set
nom_tipo_doc =nom_tipo_doc
where id_tipo_doc =id_tipo_doc ;
commit;
exception
when others then
rollback;
end usp_update_tipo_docum_ident;

create or replace procedure usp_update_tipo_emergencia(
nom_tip_emergencia in varchar2,
id_tip_emergencia in int
)
as
begin
update tipo_emergencia set
nom_tip_emergencia=nom_tip_emergencia
where id_tip_emergencia =id_tip_emergencia ;
commit;
exception
when others then
rollback;
end usp_update_tipo_emergencia;

create or replace procedure usp_update_tipo_empresa(
nom_tipo_emp in varchar2,
id_tipo_emp in int
)
as
begin
update tipo_empresa set
nom_tipo_emp=nom_tipo_emp
where id_tipo_emp =id_tipo_emp ;
commit;
exception
when others then
rollback;
end usp_update_tipo_empresa;

create or replace procedure usp_update_tipo_ident_essalud(
nom_tipo_identidad in varchar2,
id_tipo_identidad in int
)
as
begin
update tipo_identidad_con_essalud set
nom_tipo_identidad=nom_tipo_identidad
where id_tipo_identidad =id_tipo_identidad ;
commit;
exception
when others then
rollback;
end usp_update_tipo_ident_essalud;

create or replace procedure usp_update_tipo_operacion(
nom_tipo_identidad in varchar2,
id_tipo_ope in int
)
as
begin
update tipo_operacion set
nom_tipo_ope = nom_tipo_ope
where id_tipo_ope =id_tipo_ope;
commit;
exception
when others then
rollback;
end usp_update_tipo_operacion;

create or replace procedure usp_update_tipo_zona(
nom_zona in varchar2,
id_zona in int
)
as
begin
update tipo_zona set
nom_zona = nom_zona
where id_zona =id_zona;
commit;
exception
when others then
rollback;
end usp_update_tipo_zona;

create or replace procedure usp_update_usuarios(
id_rol in int,
usuario in varchar2,
pass_usuario in varchar2,
id_empleado in int ,
id_usuario in int
)
as
begin
update usuario set
id_rol=id_rol,
usuario=usuario,
pass_usuario=pass_usuario,
id_empleado=id_empleado
where id_usuario =id_usuario;
commit;
exception
when others then
rollback;
end usp_update_usuarios;

create or replace procedure usp_update_vinculo(

nom_vinculo in varchar2

)
as
begin
update vinculo set
nom_vinculo =nom_vinculo
where id_vinculo =id_vinculo;
commit;
exception
when others then
rollback;
end usp_update_vinculo;

DELETE

create or replace procedure usp_delete_afiliado(id_afi in int)
as
begin
delete from afiliado where id_afi =id_afi;
commit;
exception
when others then
rollback;
end usp_delete_afiliado;

create or replace procedure usp_delete_derecho_habiente(id_derech in int)
as
begin
delete from afiliar_derecho_habiente where id_derech =id_derech;
commit;
exception
when others then
rollback;
end usp_delete_derecho_habiente;

create or replace procedure usp_delete_hijo_incapacitado(id_hi in int)
as
begin
delete from afiliar_hijo_incapacitado where id_hi =id_hi;
commit;
exception
when others then
rollback;
end usp_delete_hijo_incapacitado;

create or replace procedure usp_delete_centro_asistencial(id_cent_asist in int)
as
begin
delete from centro_asistencial where id_cent_asist=id_cent_asist;
commit;
exception
when others then
rollback;
end usp_delete_centro_asistencial;

create or replace procedure usp_delete_departamento(id_dep in int)
as
begin
delete from departamento where id_dep=id_dep;
commit;
exception
when others then
rollback;
end usp_delete_departamento;

create or replace procedure usp_delete_distrito(id_distr in int)
as
begin
delete from distrito where id_distr=id_distr;
commit;
exception
when others then
rollback;
end usp_delete_distrito;

create or replace procedure usp_delete_empleado(id_empleado in int)
as
begin
delete from empleado where id_empleado=id_empleado;
commit;
exception
when others then
rollback;
end usp_delete_empleado;

create or replace procedure usp_delete_empresa(id_emp in int)
as
begin
delete from empresa where id_emp=id_emp;
commit;
exception
when others then
rollback;
end usp_delete_empresa;

create or replace procedure usp_delete_empresa_prestadora(id__emp_prestadora in
int)
as
begin
delete from empresa_prestadora where id__emp_prestadora=id__emp_prestadora;
commit;
exception
when others then
rollback;
end usp_delete_empresa_prestadora;

create or replace procedure usp_delete_estado_civil(id_ec in int)
as
begin
delete from estado_civil where id_ec=id_ec;
commit;
exception
when others then
rollback;
end usp_delete_estado_civil;

create or replace procedure usp_delete_historia_clinica(id_hc in int)
as
begin
delete from historia_clinica where id_hc=id_hc;
commit;
exception
when others then
rollback;
end usp_delete_historia_clinica;

create or replace procedure usp_delete_mod_cob(id_mod_cob in int)
as
begin
delete from modalidad_cobertura where id_mod_cob=id_mod_cob;
commit;
exception
when others then
rollback;
end usp_delete_mod_cob;

create or replace procedure usp_delete_paciente(id_paciente in int)
as
begin
delete from paciente where id_paciente=id_paciente;
commit;
exception
when others then
rollback;
end usp_delete_paciente;

create or replace procedure usp_delete_paises(id_pais in int)
as
begin
delete from paises where id_pais=id_pais;
commit;
exception
when others then
rollback;
end usp_delete_paises;

create or replace procedure usp_delete_provincia(id_provi in int)
as
begin
delete from provincia where id_provi=id_provi;
commit;
exception
when others then
rollback;
end usp_delete_provincia;

create or replace procedure usp_delete_roles(id_rol in int)
as
begin
delete from roles where id_rol=id_rol;
commit;
exception
when others then
rollback;
end usp_delete_roles;

create or replace procedure usp_delete_testigo(id_tes in int)
as
begin
delete from testigo where id_tes =id_tes ;
commit;
exception
when others then
rollback;
end usp_delete_testigo;

create or replace procedure usp_delete_tipo_afiliacion(id_tipo in int)
as
begin
delete from tipo_afiliacion where id_tipo =id_tipo ;
commit;
exception
when others then
rollback;
end usp_delete_tipo_afiliacion;

create or replace procedure usp_delete_tipo_cie10(id_cie10 in int)
as
begin
delete from tipo_cie10 where id_cie10 =id_cie10 ;
commit;
exception
when others then
rollback;
end usp_delete_tipo_cie10;

create or replace procedure usp_delete_tipo_docum_ident(id_tipo_doc in int)
as
begin
delete from tipo_docum_identidad where id_tipo_doc =id_tipo_doc ;
commit;
exception
when others then
rollback;
end usp_delete_tipo_docum_ident;

create or replace procedure usp_delete_tipo_emergencia(id_tip_emergencia in int)
as
begin
delete from tipo_emergencia where id_tip_emergencia =id_tip_emergencia ;
commit;
exception
when others then
rollback;
end usp_delete_tipo_emergencia;

create or replace procedure usp_delete_tipo_empresa(id_tipo_emp in int)
as
begin
delete from tipo_empresa where id_tipo_emp =id_tipo_emp ;
commit;
exception
when others then
rollback;
end usp_delete_tipo_empresa;

create or replace procedure usp_delete_tipo_ident_essalud(id_tipo_identidad in int)
as
begin
delete from tipo_identidad_con_essalud where id_tipo_identidad =id_tipo_identidad ;
commit;
exception
when others then
rollback;
end usp_delete_tipo_ident_essalud;

create or replace procedure usp_delete_tipo_operacion(id_tipo_ope in int)
as
begin
delete from tipo_operacion where id_tipo_ope =id_tipo_ope ;
commit;
exception
when others then
rollback;
end usp_delete_tipo_operacion;

create or replace procedure usp_delete_tipo_zona(id_zona in int)
as
begin
delete from tipo_zona where id_zona =id_zona ;
commit;
exception
when others then
rollback;
end usp_delete_tipo_zona;

create or replace procedure usp_delete_usuarios(id_usuario in int)
as
begin
delete from usuario where id_usuario =id_usuario ;
commit;
exception
when others then
rollback;
end usp_delete_usuarios;

create or replace procedure usp_delete_vinculo(id_vinculo in int)
as
begin
delete from vinculo where id_vinculo =id_vinculo;
commit;
exception
when others then
rollback;
end usp_delete_vinculo;


VISTAS

CREATE OR REPLACE VIEW v_Afiliado_Independiente
AS
SELECT a.COD_AFI AS Codigo_Afiliado,
a.AP_PATERNO_AFILIADO AS PATERNO,
a.AP_MATERNO_AFILIADO AS MATERNO,
a.NOM_AFI AS NOMBRE,
a.SEXO_AFI AS SEXO,
d.NOM_TIPO_DOC AS DOCUMENTO,
a.NUM_DOCUMENTO_IDENT AS NUMERO_DOC,
a.ESTADO_AFILIADO AS ESTADO,
a.FEC_NAC_AFI AS FECHA_NACIMIENTO,
t.NOM_TIPO AS TIPO_AFILACION
FROM AFILIADO a,
TIPO_AFILIACION t,
TIPO_DOCUM_IDENTIDAD d
WHERE a.ID_TIPO = t.ID_TIPO
AND a.ID_TIPO='2'
AND a.ID_TIPO_DOC = d.ID_TIPO_DOC
AND a.ID_TIPO_DOC ='1';


CREATE OR REPLACE VIEW v_Afiliado_Empresarial_DH
AS
SELECT a.COD_AFI AS Codigo_Afiliado,
a.AP_PATERNO_AFILIADO AS PATERNO,
a.AP_MATERNO_AFILIADO AS MATERNO,
a.NOM_AFI AS NOMBRE,
a.SEXO_AFI AS SEXO,
d.NOM_TIPO_DOC AS DOCUMENTO,
a.NUM_DOCUMENTO_IDENT AS NUMERO_DOC,
a.ESTADO_AFILIADO AS ESTADO,
a.FEC_NAC_AFI AS FECHA_NACIMIENTO,
t.NOM_TIPO AS TIPO_AFILACION,
h.COD_DH AS CODIGO_HABIENTE,
h.AP_PATERNO_DA AS PATERNO_HABIENTE,
h.AP_MATERNO_DA AS MATERNO_HABIENTE,
h.NOM_DA AS NOMBRE_HABIENTE,
v.NOM_VINCULO AS VINCULO_HABIENTE,
e.NOM_EC AS ESTADO_CIVIL
FROM AFILIADO a,
TIPO_AFILIACION t,
TIPO_DOCUM_IDENTIDAD d,
AFILIAR_DERECHO_HABIENTE h,
VINCULO v,
ESTADO_CIVIL e
WHERE a.ID_TIPO = t.ID_TIPO
AND a.ID_TIPO='2'
AND a.ID_TIPO_DOC = d.ID_TIPO_DOC
AND a.ID_TIPO_DOC ='1'
AND a.ID_DERECH =h.ID_DERECH
AND h.ID_EC = e.ID_EC;


CREATE OR REPLACE VIEW v_Afiliado_Empresarial_HI
AS
SELECT a.COD_AFI AS Codigo_Afiliado,
a.AP_PATERNO_AFILIADO AS PATERNO,
a.AP_MATERNO_AFILIADO AS MATERNO,
a.NOM_AFI AS NOMBRE,
a.SEXO_AFI AS SEXO,
d.NOM_TIPO_DOC AS DOCUMENTO,
a.NUM_DOCUMENTO_IDENT AS NUMERO_DOC,
a.ESTADO_AFILIADO AS ESTADO,
a.FEC_NAC_AFI AS FECHA_NACIMIENTO,
t.NOM_TIPO AS TIPO_AFILACION,
i.COD_HI AS CODIGO_HIJO_INCAP,
i.AP_PATERNO_HI AS PATERNO_HIJO_INCAP,
i.AP_MATERNO_HI AS MATERNO_HIJO_INCAP,
i.NOM_HI AS NOMBRE_HIJO_INCAP,
i.NUM_RESOL_HI AS NUMERO_RESOLUCION,
i.SEXO_HI AS SEXO
FROM AFILIADO a,
TIPO_AFILIACION t,
TIPO_DOCUM_IDENTIDAD d,
AFILIAR_HIJO_INCAPACITADO i
WHERE a.ID_TIPO = t.ID_TIPO
AND a.ID_TIPO='2'
AND a.ID_TIPO_DOC = d.ID_TIPO_DOC
AND a.ID_TIPO_DOC ='1'
AND a.ID_DERECH =h.ID_DERECH
AND i.ID_HI = e.ID_HI ;


CREATE OR REPLACE VIEW v_PACIENTE_AFILIADO_Empresarial
AS
SELECT p.COD_PACIENTE AS CODIGO_PACIENTE,
a.AP_PATERNO_AFILIADO AS PATERNO,
a.AP_MATERNO_AFILIADO AS MATERNO,
a.NOM_AFI AS NOMBRE,
a.SEXO_AFI AS SEXO,
h.COD_HD AS CODIGO_HISTORIA_CLINICA,
h.FECH_HC AS FECHA
FROM PACIENTE p,
AFILIADO a,
HISTORIA_CLINICA h
WHERE p.ID_HC =h.ID_HC
AND p.ID_AFI = a.ID_AFI
AND a.ID_TIPO = '2'
oder by p.COD_PACIENTE;


CREATE OR REPLACE VIEW v_PACIENTE_HD_Empresarial
AS
SELECT p.COD_PACIENTE AS CODIGO_PACIENTE,
d.AP_PATERNO_DA AS PATERNO,
d.AP_MATERNO_DA AS MATERNO,
d.NOM_DA AS NOMBRE,
h.COD_HC AS CODIGO_HISTORIA_CLINICA,
h.FECH_HC AS FECHA
FROM PACIENTE p,
AFILIAR_DERECHO_HABIENTE d,
HISTORIA_CLINICA h
WHERE p.ID_HC =h.ID_HC
AND p.ID_DERECH = d.ID_DERECH
oder by p.COD_PACIENTE;


CREATE OR REPLACE VIEW v_PACIENTE_HI_Empresarial
AS
SELECT p.COD_PACIENTE AS CODIGO_PACIENTE,
i.AP_PATERNO_HI AS PATERNO,
i.AP_MATERNO_HI AS MATERNO,
i.NOM_HI AS NOMBRE,
h.COD_HC AS CODIGO_HISTORIA_CLINICA,
h.FECH_HC AS FECHA
FROM PACIENTE p,
AFILIAR_HIJO_INCAPACITADO i,
HISTORIA_CLINICA h
WHERE p.ID_HC =h.ID_HC
AND p.ID_HI = i.ID_HI
oder by p.COD_PACIENTE;


CREATE OR REPLACE VIEW v_PACIENTE_Independiente
AS
SELECT p.COD_PACIENTE AS CODIGO_PACIENTE,
a.AP_PATERNO_AFILIADO AS PATERNO,
a.AP_MATERNO_AFILIADO AS MATERNO,
a.NOM_AFI AS NOMBRE,
a.SEXO_AFI AS SEXO,
h.COD_HD AS CODIGO_HISTORIA_CLINICA,
h.FECH_HC AS FECHA
FROM PACIENTE p,
AFILIADO a,
HISTORIA_CLINICA h
WHERE p.ID_HC =h.ID_HC
AND p.ID_AFI = a.ID_AFI
AND a.ID_TIPO = '1'
oder by p.COD_PACIENTE;

CREATE OR REPLACE VIEW v_AFI_FECH_REG_TODO
AS
SELECT a.FECHA_REG_AFILIADO AS FECHA_AFILIACION,
a.COD_AFI AS CODIGO_AFILIADO,
a.AP_PATERNO_AFILIADO AS PATERNO,
a.AP_MATERNO_AFILIADO AS MATERNO,
a.NOM_AFI AS NOMBRE,
t.NOM_TIPO AS TIPO_AFILIACION
FROM AFILIADO a
JOIN TIPO_AFILIACION t
ON a.ID_TIPO = t.ID_TIPO
ORDER BY a.FECHA_REG_AFILIADO;


CREATE OR REPLACE VIEW v_AFI_FECH_REG_INDEPENDIENTE
AS
SELECT a.FECHA_REG_AFILIADO AS FECHA_AFILIACION,
a.COD_AFI AS CODIGO_AFILIADO,
a.AP_PATERNO_AFILIADO AS PATERNO,
a.AP_MATERNO_AFILIADO AS MATERNO,
a.NOM_AFI AS NOMBRE,
t.NOM_TIPO AS TIPO_AFILIACION
FROM AFILIADO a
JOIN TIPO_AFILIACION t
ON a.ID_TIPO = t.ID_TIPO
WHERE a.ID_TIPO='1'
ORDER BY a.FECHA_REG_AFILIADO;


CREATE OR REPLACE VIEW v_AFI_FECH_REG_EMPRESARIAL
AS
SELECT a.FECHA_REG_AFILIADO AS FECHA_AFILIACION,
a.COD_AFI AS CODIGO_AFILIADO,
a.AP_PATERNO_AFILIADO AS PATERNO,
a.AP_MATERNO_AFILIADO AS MATERNO,
a.NOM_AFI AS NOMBRE,
t.NOM_TIPO AS TIPO_AFILIACION
FROM AFILIADO a
JOIN TIPO_AFILIACION t
ON a.ID_TIPO = t.ID_TIPO
WHERE a.ID_TIPO='2'
ORDER BY a.FECHA_REG_AFILIADO;

FUNCIONES

CREATE OR REPLACE FUNCTION f_DIFERNC_FECH (FECH_AFI CHAR)
RETURN NUMBER
IS
F NUMBER(8);
BEGIN
F:= SYSDATE-TO_DATE(FECH_AFI,'DD/MM/YYYY');
F:=F/365;
RETURN (F);
END;

CREATE OR REPLACE FUNCTION f_DIFERENC_FECH2(V_COD_AFI)
RETURN NUMBER

IS

R_FECH DATE;
S NUMBER;

BEGIN

SELECT FECH_REG_AFILIADO
INTO R_TIEMP
FROM AFILIADO
WHERE COD_AFI =V_COD_AFI;

S:=SYSDATE - R_FECH;
S:=S/365;
RETURN (S);
END;


CREATE OR REPLACE FUNCTION f_MAYOR_EDAD (EDAD NUMBER)
RETURN VARCHAR2
IS
R VARCHAR2(30);
BEGIN
IF EDAD >18 THEN
R:='ES MAYOR DE EDAD';
ELSE
R:='ES MENOR DE EDAD';
END IF;
RETURN (R)
END f_MAYOR_EDAD;


CURSORES

DECLARE
Vnon varchar2(50);
begin
Select first_Name into vnon
from Employees
where Employee_ID='100';
dbms_output.put_line('Nombres:'||vnon);
end;















ANEXOS

FORMULARIO DE REGISTRO DE ENTIDAD 1011





FORMULARIO DE REGISTRO DE ENTIDAD 1010

You might also like