diff --git a/asset-transfer-basic/application-gateway-java/.gitignore b/asset-transfer-basic/application-gateway-java/.gitignore new file mode 100644 index 00000000..da7b093d --- /dev/null +++ b/asset-transfer-basic/application-gateway-java/.gitignore @@ -0,0 +1,3 @@ +.idea/ +.gradle/ +bin/ \ No newline at end of file diff --git a/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go b/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go index 5907b0ad..4f3dad92 100644 --- a/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go +++ b/asset-transfer-basic/chaincode-go/chaincode/smartcontract.go @@ -13,6 +13,7 @@ type SmartContract struct { type Receta struct { ID string `json:"id"` + Identificador string `json:"identificador"` Owner string `json:"owner"` PrescripcionAnteriorId string `json:"prescripcionAnteriorId"` Status string `json:"status"` @@ -34,6 +35,7 @@ func (s *SmartContract) InitLedger(ctx contractapi.TransactionContextInterface) recetas := []Receta{ { ID: "receta1", + Identificador "rece1234" Owner: "Tomoko", PrescripcionAnteriorId: "presc123", Status: "active", @@ -52,6 +54,7 @@ func (s *SmartContract) InitLedger(ctx contractapi.TransactionContextInterface) }, { ID: "receta2", + Identificador "rece1235" Owner: "Alice", PrescripcionAnteriorId: "presc456", Status: "completed", @@ -224,3 +227,35 @@ func (s *SmartContract) GetMultipleRecetas(ctx contractapi.TransactionContextInt } return recetas, nil } +// TODO: adaptar los campos para que se tengan un identificar de usuarios ademas del DNI +func (s *SmartContract) GetRecetasPorDniYEstado(ctx contractapi.TransactionContextInterface, dni string, estado string) ([]*Receta, error) { + if dni == "" || estado == "" { + return nil, fmt.Errorf("el dni y el estado son obligatorios") + } + + resultsIterator, err := ctx.GetStub().GetStateByRange("", "") + if err != nil { + return nil, fmt.Errorf("error al obtener datos del ledger: %v", err) + } + defer resultsIterator.Close() + + var recetasFiltradas []*Receta + for resultsIterator.HasNext() { + queryResponse, err := resultsIterator.Next() + if err != nil { + return nil, err + } + + var receta Receta + err = json.Unmarshal(queryResponse.Value, &receta) + if err != nil { + return nil, err + } + + if receta.DniPaciente == dni && receta.Status == estado { + recetasFiltradas = append(recetasFiltradas, &receta) + } + } + + return recetasFiltradas, nil +} diff --git a/asset-transfer-basic/chaincode-java/.gitignore b/asset-transfer-basic/chaincode-java/.gitignore index bd6fd304..da7b093d 100644 --- a/asset-transfer-basic/chaincode-java/.gitignore +++ b/asset-transfer-basic/chaincode-java/.gitignore @@ -1,2 +1,3 @@ .idea/ .gradle/ +bin/ \ No newline at end of file diff --git a/asset-transfer-basic/maven-example/.gitignore b/asset-transfer-basic/maven-API-SiMeDi/.gitignore similarity index 100% rename from asset-transfer-basic/maven-example/.gitignore rename to asset-transfer-basic/maven-API-SiMeDi/.gitignore diff --git a/asset-transfer-basic/maven-example/.mvn/wrapper/maven-wrapper.properties b/asset-transfer-basic/maven-API-SiMeDi/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from asset-transfer-basic/maven-example/.mvn/wrapper/maven-wrapper.properties rename to asset-transfer-basic/maven-API-SiMeDi/.mvn/wrapper/maven-wrapper.properties diff --git a/asset-transfer-basic/maven-example/README.md b/asset-transfer-basic/maven-API-SiMeDi/README.md similarity index 100% rename from asset-transfer-basic/maven-example/README.md rename to asset-transfer-basic/maven-API-SiMeDi/README.md diff --git a/asset-transfer-basic/maven-example/mvnw b/asset-transfer-basic/maven-API-SiMeDi/mvnw similarity index 100% rename from asset-transfer-basic/maven-example/mvnw rename to asset-transfer-basic/maven-API-SiMeDi/mvnw diff --git a/asset-transfer-basic/maven-example/mvnw.cmd b/asset-transfer-basic/maven-API-SiMeDi/mvnw.cmd similarity index 100% rename from asset-transfer-basic/maven-example/mvnw.cmd rename to asset-transfer-basic/maven-API-SiMeDi/mvnw.cmd diff --git a/asset-transfer-basic/maven-example/pom.xml b/asset-transfer-basic/maven-API-SiMeDi/pom.xml similarity index 100% rename from asset-transfer-basic/maven-example/pom.xml rename to asset-transfer-basic/maven-API-SiMeDi/pom.xml diff --git a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/App.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/App.java similarity index 99% rename from asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/App.java rename to asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/App.java index 6f68dfd1..616f7c24 100644 --- a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/App.java +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/App.java @@ -1,9 +1,10 @@ package com.code.hyperledger; -import com.code.hyperledger.coso.Receta; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; + +import com.code.hyperledger.models.Receta; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonParser; diff --git a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/Utils/Hashing.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/Utils/Hashing.java similarity index 100% rename from asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/Utils/Hashing.java rename to asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/Utils/Hashing.java diff --git a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/controllers/Example.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/controllers/Example.java similarity index 87% rename from asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/controllers/Example.java rename to asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/controllers/Example.java index 503132a6..59bc7048 100644 --- a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/controllers/Example.java +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/controllers/Example.java @@ -1,9 +1,10 @@ package com.code.hyperledger.controllers; -import com.code.hyperledger.coso.Receta; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; +import com.code.hyperledger.models.Receta; + @RestController public class Example { diff --git a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/controllers/RecetaController.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/controllers/RecetaController.java similarity index 95% rename from asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/controllers/RecetaController.java rename to asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/controllers/RecetaController.java index c73e98b1..50d91242 100644 --- a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/controllers/RecetaController.java +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/controllers/RecetaController.java @@ -1,9 +1,9 @@ package com.code.hyperledger.controllers; -import com.code.hyperledger.coso.Receta; -import com.code.hyperledger.coso.RecetaDto; -import com.code.hyperledger.coso.AssetIdDto; import com.code.hyperledger.Utils.Hashing; +import com.code.hyperledger.models.AssetIdDto; +import com.code.hyperledger.models.Receta; +import com.code.hyperledger.models.RecetaDto; import com.code.hyperledger.services.RecetaService; import org.hyperledger.fabric.client.*; import org.springframework.beans.factory.annotation.Autowired; @@ -85,6 +85,7 @@ public class RecetaController { private RecetaDto mapToDto(Receta receta) { RecetaDto dto = new RecetaDto(); + dto.setIdentifier(receta.getIdentifier()); dto.setOwner(receta.getOwner()); dto.setPrescripcionAnteriorId(receta.getPrescripcionAnteriorId()); dto.setStatus(receta.getStatus()); diff --git a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/coso/AssetIdDto.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/coso/AssetIdDto.java similarity index 85% rename from asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/coso/AssetIdDto.java rename to asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/coso/AssetIdDto.java index 2a1d8ae1..964fe254 100644 --- a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/coso/AssetIdDto.java +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/coso/AssetIdDto.java @@ -1,4 +1,4 @@ -package com.code.hyperledger.coso; +package com.code.hyperledger.models; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/coso/Receta.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/coso/Receta.java similarity index 92% rename from asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/coso/Receta.java rename to asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/coso/Receta.java index a37b2bcc..5b76eaae 100644 --- a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/coso/Receta.java +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/coso/Receta.java @@ -1,4 +1,4 @@ -package com.code.hyperledger.coso; +package com.code.hyperledger.models; import lombok.AllArgsConstructor; import lombok.Data; @@ -9,6 +9,7 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class Receta { private String id; + private String identifier; private String owner; private String prescripcionAnteriorId; private String status; diff --git a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/coso/RecetaDto.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/coso/RecetaDto.java similarity index 92% rename from asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/coso/RecetaDto.java rename to asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/coso/RecetaDto.java index b28bd9bb..d0f5f5fe 100644 --- a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/coso/RecetaDto.java +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/coso/RecetaDto.java @@ -1,4 +1,4 @@ -package com.code.hyperledger.coso; +package com.code.hyperledger.models; import lombok.AllArgsConstructor; import lombok.Data; @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class RecetaDto { + private String identifier; private String owner; private String prescripcionAnteriorId; private String status; diff --git a/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/models/AssetIdDto.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/models/AssetIdDto.java new file mode 100644 index 00000000..964fe254 --- /dev/null +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/models/AssetIdDto.java @@ -0,0 +1,14 @@ +package com.code.hyperledger.models; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class AssetIdDto { + private String Dni; + private String TimeStamp; +} + diff --git a/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/models/Receta.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/models/Receta.java new file mode 100644 index 00000000..5b76eaae --- /dev/null +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/models/Receta.java @@ -0,0 +1,31 @@ +package com.code.hyperledger.models; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Receta { + private String id; + private String identifier; + private String owner; + private String prescripcionAnteriorId; + private String status; + //@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") + private String statusChange; + private String prioridad; + private String medicacion; + private String razon; + private String notas; + private String periodoDeTratamiento; + private String instruccionesTratamiento; + private String periodoDeValidez; + private String dniPaciente; + //@JsonFormat(pattern = "yyyy-MM-dd") + private String fechaDeAutorizacion; + private int cantidad; + //@JsonFormat(pattern = "yyyy-MM-dd") + private String expectedSupplyDuration; +} \ No newline at end of file diff --git a/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/models/RecetaDto.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/models/RecetaDto.java new file mode 100644 index 00000000..d0f5f5fe --- /dev/null +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/models/RecetaDto.java @@ -0,0 +1,30 @@ +package com.code.hyperledger.models; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class RecetaDto { + private String identifier; + private String owner; + private String prescripcionAnteriorId; + private String status; + //@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") + private String statusChange; + private String prioridad; + private String medicacion; + private String razon; + private String notas; + private String periodoDeTratamiento; + private String instruccionesTratamiento; + private String periodoDeValidez; + private String dniPaciente; + //@JsonFormat(pattern = "yyyy-MM-dd") + private String fechaDeAutorizacion; + private int cantidad; + //@JsonFormat(pattern = "yyyy-MM-dd") + private String expectedSupplyDuration; +} diff --git a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/services/RecetaService.java b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/services/RecetaService.java similarity index 91% rename from asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/services/RecetaService.java rename to asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/services/RecetaService.java index 211e1615..9c2dcab4 100644 --- a/asset-transfer-basic/maven-example/src/main/java/com/code/hyperledger/services/RecetaService.java +++ b/asset-transfer-basic/maven-API-SiMeDi/src/main/java/com/code/hyperledger/services/RecetaService.java @@ -141,3 +141,15 @@ public class RecetaService { objectMapper.getTypeFactory().constructCollectionType(List.class, Receta.class)); } } + +public List obtenerRecetasPorDniYEstado(String dni, String estado) throws GatewayException, IOException { + if (dni == null || dni.isBlank() || estado == null || estado.isBlank()) { + throw new IllegalArgumentException("DNI y estado son obligatorios"); + } + + var evaluateResult = contract.evaluateTransaction("GetRecetasPorDniYEstado", dni, estado); + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.readValue(evaluateResult, + objectMapper.getTypeFactory().constructCollectionType(List.class, Receta.class)); +} + diff --git a/asset-transfer-basic/maven-example/src/main/resources/application.properties b/asset-transfer-basic/maven-API-SiMeDi/src/main/resources/application.properties similarity index 100% rename from asset-transfer-basic/maven-example/src/main/resources/application.properties rename to asset-transfer-basic/maven-API-SiMeDi/src/main/resources/application.properties diff --git a/asset-transfer-basic/maven-example/src/test/java/com/code/main/MainApplicationTests.java b/asset-transfer-basic/maven-API-SiMeDi/src/test/java/com/code/main/MainApplicationTests.java similarity index 100% rename from asset-transfer-basic/maven-example/src/test/java/com/code/main/MainApplicationTests.java rename to asset-transfer-basic/maven-API-SiMeDi/src/test/java/com/code/main/MainApplicationTests.java diff --git a/asset-transfer-ledger-queries/.gitignore b/asset-transfer-ledger-queries/.gitignore new file mode 100644 index 00000000..da7b093d --- /dev/null +++ b/asset-transfer-ledger-queries/.gitignore @@ -0,0 +1,3 @@ +.idea/ +.gradle/ +bin/ \ No newline at end of file diff --git a/asset-transfer-private-data/chaincode-java/.gitignore b/asset-transfer-private-data/chaincode-java/.gitignore new file mode 100644 index 00000000..da7b093d --- /dev/null +++ b/asset-transfer-private-data/chaincode-java/.gitignore @@ -0,0 +1,3 @@ +.idea/ +.gradle/ +bin/ \ No newline at end of file diff --git a/off_chain_data/application-java/app/.gitignore b/off_chain_data/application-java/app/.gitignore new file mode 100644 index 00000000..da7b093d --- /dev/null +++ b/off_chain_data/application-java/app/.gitignore @@ -0,0 +1,3 @@ +.idea/ +.gradle/ +bin/ \ No newline at end of file